最近在做一个项目,其中一需求是:部分数据库中的数据需要定时删除掉(满足一定条件,比如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. 页面每次加载时重新获取css文件

    <script> (function(){ var version=''; var xmlhttp; // code for IE7+, Firefox, Chrome, Opera, S ...

  2. 【干货】.NET开发通用组件发布(二) 邮件发送组件

    组件介绍和合作开发 http://www.cnblogs.com/MrHuo/p/MrHuoControls.html 邮件发送组件 邮件发送组件采用常用的SMTP发送方式,需要添加以下格式的配置文件 ...

  3. ACM ICPC Team

    Link: https://www.hackerrank.com/challenges/acm-icpc-team/submissions/code/11617807 def count_max_to ...

  4. [HDU] 1394 Minimum Inversion Number [线段树求逆序数]

    Minimum Inversion Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java ...

  5. 【转帖】C# DllImport 系统调用使用详解 托管代码的介绍 EntryPoint的使用

    1      DLLImport的使用 using System; using System.Runtime.InteropServices; //命名空间 class Example { //用Dl ...

  6. 解决kibana 4 关于响应时间的问题

    "message" => " 10.252.142.174 [12/Sep/2016:16:43:47 +0800] \"GET /resources/j ...

  7. ssh添加公钥

    ssh-keygen生成公钥存储在文件: ~/.ssh/id_rsa.pub 如果ssh-add -l命令后没有一串长的字符串, 把私钥密钥对的ID(fingerPrint)加入ssh的认证代理ssh ...

  8. sourceforge软件下载方式

    访问http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/ 根据软件名称在文件列表中查找

  9. ASIFormDataRequest 上传图片

    - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typica ...

  10. 使用Reporting Service订阅对域外用户发邮件

    默认情况下使用Reporting Service对域外邮件发送会失败,一般可能会碰到下面的两个错误: ERROR 1: Subscription Error: "The e-mail add ...