这个意思是varchar存储时,会用1个二进制位表示varchar长度; 但如果varchar列可能超过255字节,会使用2个二进制位表示长度。
length只是计算值的字节数,并不会计算存储的开销。
如果一定要验证,只能是尝试触发行65535限制。
参考资料:
MySQL字段长度、取值范围、存储开销
MySQL存储要求
添加语法: ALTER TABLE table_name ADD KEY(column_name(prefix_length))
在MySQL中,前缀长度最大值为255字节。对于存储引擎为MyISAM或InnoDB的数据表,前缀最长为1000字节。 必须注意的是,在MySQL中,对于TEXT和BLOB这种大数据类型的字段,必须给出前缀长度(length)才能成功创建索引。
如何确定前缀索引长度?
可以通过计算选择性来确定前缀索引的选择性,计算方法如下
全列选择性:
SELECT COUNT(DISTINCT column_name) / COUNT(*) FROM table_name
某一长度前缀的选择性
SELECT COUNT(DISTINCT LEFT(column_name, prefix_length)) / COUNT(*) FROM table_name
当前缀的选择性越接近全列选择性的时候,索引效果越好。
参考文章:
MySQL索引 *** 作命令详解
MySQL 前缀索引
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)