tmp_table_size

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


Category mysql