The total number of locks exceeds the lock table size
当我们对Mysql 中的表进行大批量的分组,查询、 创建的时候经常会出现这个问题,他翻译过来大概是这个意思,总数已经超过锁定表的大小。一般出现这个原因会有两种可能:
1.MySQL的临时表过小也就是tmp_table_size
tmp_table_size:它规定了内部内存临时表的最大值,每个线程都要分配。(实际起限制作用的是tmp_table_size和max_heap_table_size的最小值。)如果内存临时表超出了限制,MySQL就会自动地把它转化为基于磁盘的MyISAM表,存储在指定的tmpdir目录下
那么怎么改变临时表的大小呢?同样有两种方法
第一种是 使用命令行进行修改
先使用 show variables like “%tmp%”;查看临时表的大小,我的是64M
然后使用SET GLOBAL tmp_table_size =102410241024;我是给了1个G
第一种重启电脑后默认的设置会还原,适合临时使用一次的用户。或者我没有找到怎么设置永久的方法,如果有小伙伴们发现请告诉我哦,
第二种是修改mysql 的配置文件
https://blog.csdn.net/dingweiye123/article/details/80994576