zoukankan      html  css  js  c++  java
  • select大表报错

    MySQL查询大表报错

    MySQL执行select操作时候,如果执行查询的表的数据量比较大,就会报错error code 2013。或者报错已杀死,并直接退出MySQL客户端。如下所示:

    mysql> select * from test;
    /usr/local/mysql/bin/mysqld_safe: line 198:  4535 Killed                  nohup /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/3306/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/3306/tmp/error.log --pid-file=/data/3306/data//mysql.pid --socket=/data/3306/mysql.sock --port=3306 < /dev/null > /dev/null 2>&1
    ERROR 2013 (HY000): Lost connection to MySQL server during query

    MySQL的错误日志如下:

    2019-01-23T20:17:00.305460Z 4 [Note] Aborted connection 4 to db: 'test' user: 'root' host: 'localhost' (Got an error writing communication packets)

    linux的系统日志如下 cat /var/log/messages:

    mysql kernel: Out of memory: Kill process 5453 (mysql) score 545 or sacrifice child
    mysql kernel: Killed process 5453, UID 0, (mysql) total-vm:2117292kB, anon-rss:1947792kB, file-rss:52kB

    这个问题的主要原因是:服务器内存不足,服务器是Linux的,由于内存不足,mysql服务就被kill掉了,因为Linux服务器在检测到一个占内存的服务,而内存又不够用的情况下,就把那个服务给干掉,这就是Linux常见的OOM killer(Out Of Memory killer)机制。

    解决方法:

    1、更换大内存的服务器

    2、客户端使用分页查询,使用limit控制查询数量

  • 相关阅读:
    jsp文件中charset和pageEncoding的区别
    如果jsp表单元素的值为空,如何避免null出现在页面上?
    C# 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。
    正则表达式
    事件委托与键盘事件
    事件对象的兼容性
    作用域解析题
    事件冒泡与事件铺获的解析
    浏览器内核
    js中级总结
  • 原文地址:https://www.cnblogs.com/jkin/p/10314695.html
Copyright © 2011-2022 走看看