mysql 1206 SQLSTATE: HY000 (ER_LOCK_TABLE_FULL) 题目_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2008 | 回复: 0   主题: mysql 1206 SQLSTATE: HY000 (ER_LOCK_TABLE_FULL) 题目        下一篇 
gjga
注册用户
等级:新兵
经验:66
发帖:6
精华:0
注册:1970-1-1
状态:离线
发送短消息息给gjga 加好友    发送短消息息给gjga 发消息
发表于: IP:您无权察看 2015-1-5 15:11:53 | [全部帖] [楼主帖] 楼主

比来在做一个项目,此中一需求是:项目组数据库中的数据须要按时删除掉(满足必然前提,比如7天前的数据都不保存)

最初的履行办法:

应用Quartz按时履行数据库操纵,进行数据删除,数据库操纵应用语句

最开端数据少的时辰,没有题目,后来跟着数据量变大,履行这个任务后台就报错了,具体错误信息是:

1206 SQLSTATE: HY000 (ER_LOCK_TABLE_FULL) 题目

google了一把,大师给出的解决办法

第一种:

查看 max_write_lock_count 和 innodb_buffer_pool_size参数的值,批改 innodb_buffer_pool_size的值,增大到合适需求,关于值设置可以参考

http://wangwei007.blog.51cto.com/68019/967278


默认值如下:

第二种:

让用Limit来限制每次写的行数,然则我在代码中已经做了,所以这个应当是解决不了我的题目。

实践证实:应用来删除较大数据是不靠谱的,最后批改实现办法,达到删除的目标。

创建存储过程,存储过程履行步调:

1)创建一个表布局和目标表布局雷同的备份表,数据选择目标表中须要保存的(及不满足删除前提的)

2)履行 号令,将目标表清空

3)把步调 1)中筹办好的备份表数据全部导入到空的目标表中

经由过程上方这个存储过程,顺利完成了目标需求,天天稳定履行删除记录任务。

再回到最初的题目:

1206 SQLSTATE: HY000 (ER_LOCK_TABLE_FULL) mysql报的这个错误,从mysql官网上,可以看到对于这个错误类型的申明:

错误:1206 SQLSTATE: HY000 (ER_LOCK_TABLE_FULL)

消息:总的锁定命超出了锁定表的大小。

mysql的表什么时辰会被锁,被锁的处理惩罚应当是怎么样的,还要持续研究。。。。

--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论