您好,今天小源来为大家解答以上的问题。mysql字符长度函数相信很多小伙伴还不知道,现在让我们一起来看看吧!
mysql字符长度函数 mysql中字段长度
mysql字符长度函数 mysql中字段长度
1、LOCATE(substr,str)由于历史原因,MySQL刚开始设计的时候,"天真的"认为使用3个字节就足够存储字符串了,因此将UTF-8进行;然而遇到复杂的汉字或者emoji表情等4字节的宽字符的时候,存储就会出现异常,因此在版本5.7.3开始引入utf8mb4,其表示为most bytes 4,即最多占用4个字节。
2、例:总varchar(30)和char(30)最多能存放:结:UTF-8编码的字符可以是1-4个字节,但是在MySQL中只能存储3个字节。
3、在版本5.5开始引入innodb_large_prefix,其默认值为off,索引的前缀限制为767个字节;若值为on时(版本5.7.7开始作为默认值),限制为3072个字节。
4、总结参考资料::在后期版本 innodb_large_prefix 将会被逐渐废弃并移除。
5、从版本8.0开始,索引长度限制由表字段(row format)决定,若为DYNAMIC或COMPRESSED时,限制值为3072;为REDUNDANT或COMPACT时,限制值为767。
6、且row_format=dynamic时,长度3072是基于innodb_page_size=16KB,随着innodb_page_size的值按比例增减,其索引前缀长度也响应减小,如若为8KB时,长度为1536,因此在限制索引长度时,需根据使用的MySQL版本以及相应的参数进行配置决定。
本文到这结束,希望上面文章对大家有所帮助。