可以,索引长度越长,越消耗物理空间,字符集latin1 可以设置 索引长度1000bytes,而utf8则最大也只能是333
深圳ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!
首先是两个表, 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
解决办法是在建索引时限制索引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个字符创建索引。这样子,就可以避免索引长度过大的问题。