• Mysql he total number of locks exceeds the lock table size


     Mysql写了一个存储过程,每隔30分钟字段将2个日志表的数据汇总插入到另一个表。其中用到Mysql的(REPLACE INTO  插入的表  SELECT 数据源 ), 执行时因数据量过大,导致发生以下错误:

    解决方式:

    1.执行以下命令:

      show variables like "%_buffer%";

      显示结果:

      

     2. 找到上图中的:innodb_buffer_pool_size=8388608 ,默认8M,需要将其设置为1G=1*1024*1024*1024。

      输入如下命令:

    SET GLOBAL innodb_buffer_pool_size=1073741824;

    设置后返回结果:

    设置要根据自己的实际情况来设置,如果设置的值不在合理的范围内,并不是设置越大越好,可能设置的数值太大体现不出优化效果反而造成系统的swap空间被占用,导致操作系统变慢,降低sql查询性能。

    3. MySQL5.7及以后版本,改参数时动态的,修改后,无需重启MySQL,但是低版本,静态的,修改后,需要重启MySQL才生效。

     
  • 相关阅读:
    OSI模型白话
    并发
    初始化与清理
    多线程
    recyclerview Adapter
    recyclerview刷新
    surfaceview
    viewgroup绘制流程
    view配置
    项目遇到的问题
  • 原文地址:https://www.cnblogs.com/harbin1900/p/15711111.html
Copyright © 2020-2023  润新知