经查询mysqlfindinse相关资料可知,长度限制最大不能超过1M。
MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle旗下产品。
平时我们在进行批量 *** 作的时候经常会遇到这样一种情况:插入少量数据的时候发现没有任何问题,但是插入大量数据的时候就会报错 Could not execute JDBC batch update,这是因为Mysql语句的长度是有限制的,默认的长度为1M,也就是说(包含insert在内)的语句长度最大不能超过1M。具体的数值可以根据sql语句来查看:show VARIABLES WHERE Variable_name LIKE 'max_allowed_packet'
首先是两个表, 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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)