最近在做一个项目,其中一需求是:部分数据库中的数据需要定时删除掉(满足一定条件,比如7天前的数据都不保留)

最初的执行方法:

使用Quartz定时执行数据库操作,进行数据删除,数据库操作使用delete语句

最开始数据少的时候,没有问题,后来随着数据量变大,执行这个任务后台就报错了,具体错误信息是:

1206 SQLSTATE: HY000 (ER_LOCK_TABLE_FULL) 问题

google了一把,大家给出的解决方法

第一种

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

默认值如下:
 

第二种:

让用Limit来限制每次写的行数,但是我在代码中已经做了,所以这个应该是解决不了我的问题。
 
实践证明:使用delete来删除较大数据是不靠谱的,最后修改实现方法,达到删除的目的。
创建存储过程,存储过程执行步骤:
1)创建一个表结构和目标表结构相同的备份表,数据选择目标表中需要保留的(及不满足删除条件的)
2)执行 truncate 命令,将目标表清空
3)把步骤 1)中准备好的备份表数据全部导入到空的目标表中
 
通过上面这个存储过程,顺利完成了目标需求,每天稳定执行删除记录任务。
 
再回到最初的问题:
1206 SQLSTATE: HY000 (ER_LOCK_TABLE_FULL) mysql报的这个错误,从mysql官网上,可以看到对于这个错误类型的解释:

错误:1206 SQLSTATE: HY000 (ER_LOCK_TABLE_FULL)

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

mysql的表什么时候会被锁,被锁的处理应该是怎么样的,还要继续研究。。。。

参考:http://www.gosoa.com.cn/mysql-%E9%94%81%E8%A1%A8%E6%9C%BA%E5%88%B6%E5%88%86%E6%9E%90

【mysql】1206 SQLSTATE: HY000 (ER_LOCK_TABLE_FULL) 问题的更多相关文章

  1. SQLSTATE[HY000] [2003] Cant connect to MySQL server

    今天要连远程数据库,结果PHP报错 Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2003 ...

  2. PHP连接MySQL报错:SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket 'MySQL' (2)

    如下所示,PHP连接MySQL报错: SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket 'MySQL' ...

  3. bugfree,CDbConnection 无法开启数据库连线: SQLSTATE[HY000] [2003] Can't connect to MySQL server on '192.168.0.99' (4)

    安装bugfree后,访问报错:CDbConnection 无法开启数据库连线: SQLSTATE[HY000] [2003] Can't connect to MySQL server on '19 ...

  4. SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

    SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)   这个 ...

  5. SQLSTATE[HY000] [2003] Can't connect to MySQL server on 'XXX' (13)

    SQLSTATE[HY000] [2003] Can't connect to MySQL server on 'XXX' (13) 我可以真见识了 SELinux 的利害了, 这个问题让我找了好长时 ...

  6. YII 框架在 MAC OS下 连接数据库失败 提示 DB connection: SQLSTATE[HY000] [2002]

    作者:zccst CDbConnection failed to open the DB connection: SQLSTATE[HY000] [2002] No such file or dire ...

  7. PHP错误:SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

    使用PHP连接MySQL 8的时候,可能会发生如标题所示的错误: SQLSTATE[HY000] [2054] The server requested authentication method u ...

  8. TP连接数据库报错:SQLSTATE[HY000] [2002] No such file or directory

     连接数据库报错:“SQLSTATE[HY000] [2002] No such file or directory”. 出现这个问题的原因是PDO无法找到mysql.sock或者mysqld.soc ...

  9. Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002] No such file or directory解决方法

    今天用pdo连接mysql遇到一个奇怪的问题,host设为127.0.0.1可以连接成功,设为localhost就会报如下的错误: PHP Fatal error:  Uncaught excepti ...

随机推荐

  1. 用UseMiddleware扩展方法注册中间件类

    用UseMiddleware扩展方法注册中间件类 .NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类 0x00 为什么要引入扩展方法 有的中间件 ...

  2. 【测试技术】ant里面mapper的详细用法

    ant里面mapper标签是和fileset配合使用的,目的就是把fileset取出的文件名转成指定的样式.其实看懂官方文档后,感觉真心没啥好写的.但是还是写一下把. 1.<mapper typ ...

  3. jquery中ajax的dataType属性包括哪几项

    参考ajax api文档:http://www.w3school.com.cn/jquery/ajax_ajax.asp dataType类型:String预期服务器返回的数据类型.如果不指定,jQu ...

  4. sqlserver查询编辑器编辑数据

    1.我想编辑这几行的sortid,方式可以直接写sql,但是还有一种更简洁的方法,如下: 2.用这种方式可以直接修改,比较方便. 3.总结:要做一件事情,可能有很多种方法.而且很有可能有简单的方法,如 ...

  5. spark提交任务的流程

    1.spark提交流程 sparkContext其实是与一个集群建立一个链接,当你停掉它之后 就会和集群断开链接,则属于这个资源的Excutor就会释放掉了,Driver 向Master申请资源,Ma ...

  6. 使用StreamReader与StreamWriter进行文本文件读写

    namespace filetest { class FileUtil { public static void WriteFile(string file) { using (FileStream ...

  7. redo、undo、binlog的区别

    在MySQL中,redo.undo.binlog经常见,但很容易混淆这三者.   redo undo binlog 作用 保持事务的持久性 帮助事务回滚及MVCC的功能 进行Point-In-Time ...

  8. CentOS6.4安装mplayer

    1.准备软件 mplayer官网:http://www.mplayerhq.hu/design7/news.html RPM Fusion网址:http://rpmfusion.org/ EPEL网址 ...

  9. STL List容器

    转载http://www.cnblogs.com/fangyukuan/archive/2010/09/21/1832364.html 各个容器有很多的相似性.先学好一个,其它的就好办了.先从基础开始 ...

  10. 新建一个MVCProject 项目

    App_Data文件夹用于存放数据库文件的 App_Start文件夹用于存放Web应用程序启动时需要进行重要配置的类文件 Content 文件夹用于存放主题样式文件 Controllers 文件夹用于 ...