mysql中插入语句过多,导致遇到The total number of locks exceeds the lock table size错误的问题
在Linux环境下,mysql插入语句过多而导致报错问题。 The total number of locks exceeds the lock table size 百度翻译以后是:锁的总数超过了锁表的大小。网上查了查以后找到的解决方案是: InnoDB表执行大批量数据的更新,插入,删除操作时会出现这个问题,需要调整InnoDB全局的 innodb_buffer_pool_size 的值来解决这个问题,并且重启mysql服务。 进入mysql命令 show variables like "%_buffer%";(不要忘记带;号,没有;号表示一条语句没有结束) 默认的innodb_buffer_pool_size=8M 示的格式是 1M*1024*1024,设置的时候也要这样设置,例如 修改 innodb_buffer_pool_size的值为3G: SET GLOBAL innodb_buffer_pool_size=67108864;(3*1024*1024*1024,不要忘记;号) 但是我查了我的 innodb_buffer_pool_size 以后发现我的好像完全足够。并且和另一个库一样的。另外一个可以跑过去。 然后去请教了我们组的大佬。然后说明情况以后他发现是因为服务器缓存的数据量太大,导致缓存不够锁表。具体我网上查了下命令 mysql查看被锁住的表 查询是否锁表