mysql索引长度怎么调 mysql数据库设置的索引

mysql 能否设置索引长度

可以,索引长度越长,越消耗物理空间,字符集latin1 可以设置 索引长度1000bytes,而utf8则最大也只能是333

深圳ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!

MySQL索引和字段类型,字段长度

首先是两个表, user_info 和 user_identify_info ,这两个表通过 user_id 关联。

user_info 中 user_id 字段是int(11)类型,主键索引

user_identify_info 中 user_id 是varchar类型,普通索引

执行结果如图,未使用到索引

将 user_identify_info 字段改为int(11)或者bigint类型,使用到索引

最后查到

1、字段是varchar类型,参数是int类型,不走索引

2、字段是varchar类型,参数是字符串,走索引

3、字段是int类型,参数是int类型,走索引

4、字段是int类型,参数是字符串,走索引

添加列delivery_address 字段扩展到1000

为这个字段添加单列索引,报异常出来,索引最大长度是3072 bytes

mysql5.7不报错,但会自动将索引长度限制在768

mysql8单列索引最长也是768

复合索引总长度不能超过768

MySQL InnoDB引擎索引长度受限怎么办

解决办法是在建索引时限制索引prefix的大小:

例如:create index yarn_app_result_i4 on yarn_app_result (flow_exec_id(100), another_column(50));

这样,在创建索引时就会限制使用的每个列的最大长度。如上的例子中,在创建联合索引时,最多使用列flow_exec_id中前100个字符创建索引,最多使用another_column中前

50个字符创建索引。这样子,就可以避免索引长度过大的问题。


分享文章:mysql索引长度怎么调 mysql数据库设置的索引
当前链接:http://ybzwz.com/article/hiddji.html