• Mysql_解决The total number of locks exceeds the lock table size错误


    在操作mysql数据库表时出现以下错误。

    网上google搜索相关问题,发现一位外国牛人这么解释:



    1. If you're running an operation on a large number of rows within a table that uses the InnoDB storage engine, you might see this error:
    2. ERROR 1206 (HY000): The total number of locks exceeds the lock table size
    3. MySQL is trying to tell you that it doesn't have enough room to store all of the row locks that it would need to execute your query. The only way to fix it for sure is to adjust innodb_buffer_pool_size and restart MySQL. By default, this is set to only 8MB, which is too small for anyone who is using InnoDB to do anything.
    4. If you need a temporary workaround, reduce the amount of rows you're manipulating in one query. For example, if you need to delete a million rows from a table, try to delete the records in chunks of 50,000 or 100,000 rows. If you're inserting many rows, try to insert portions of the data at a single time.

    原来是InnoDB表执行大批量数据的更新,插入,删除操作时会出现这个问题,需要调整InnoDB全局的innodb_buffer_pool_size的值来解决这个问题,并且重启mysql服务。

    查看当前数据库存储引擎,在创建时使用 ENGINE=InnoDB类型。

    默认的innodb_buffer_pool_size=8M

    修改 innodb_buffer_pool_size的值:

     

    点击(此处)折叠或打开

    1. innodb_buffer_pool_size=64M

     

    再一次重启mysql服务器,执行表操作,成功执行完毕。

  • 相关阅读:
    JAVA线程池
    数据库三范式和反三范式
    nvm切换node的版本
    vue源码解析一
    css实现气泡样式
    openlayer 地图实现圈选框选清楚 选择地图区域
    vs code开发常用插件
    记录几个好用的工具
    03 使用css改变页面样式
    02 常用的html元素
  • 原文地址:https://www.cnblogs.com/gisblogs/p/4377477.html
Copyright © 2020-2023  润新知