背景:mysql数据库中有几个表的碎片率太高,浪费了存储空间且降低了读写效率,需要整理。

mysql版本:5.6

先用optimize table 试试。

也执行了很久。但是结束后,data_free 没有变化。

再用 alter table table_name force。

也等了很久,回来一看,居然报错了:Creating index 'PRIMARY' required more than 'innodb_online_alter_log_max_size' bytes of modification log. Please try again

搜索引擎了一番,原来是有个参数小了。

说明:innodb_online_alter_log_max_size是MySQL 5.6.6新加入的一个动态全局参数,用以指定对InnoDB表进行在线DDL操作时,所使用的临时日志文件的最大大小(以字节为单位,默认128M),在创建索引或者使用ALTER语句修改表时会使用该临时文件。该文件记录了DDL操作期间插入、更新、删除的数据。在必要的时候该日志文件的大小会根据innodb_sort_buffer_size的值增加容量,直至达到innodb_online_alter_log_max_size值指定的最大值。若临时表的大小超出此上限,则使用ALTER语句修改表的操作会失败,即当前所有未提交的DML操作都会回滚。因此,设置一个较大的值可以允许在线DDL操作期间有更多的DML操作被执行,但是过大的值会导致DDL操作后锁定表的时间更长(锁定表,应用日志记录到表上)。即在任务执行过程中有过多的新增数据进来,导致临时文件存放不下。
————————————————
原文链接:https://blog.csdn.net/HYZX_9987/article/details/112010324

调整:

set  global innodb_online_alter_log_max_size=1073741824;

再用 alter table table_name force。成功。

 

mysql 优化表空间报错Creating index 'PRIMARY' required more than 'innodb_online_alter_log_max_size' bytes of modification log. Please try again的更多相关文章

  1. mysql连表分组报错---- sql_mode=only_full_group_by问题解决

    #### sql语句报错问题 #1055 - Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggreg ...

  2. Oracle创建表空间报错:O/S-Error: (OS 3) 系统找不到指定的路径

    创建sql:         CREATE TABLESPACE TBSP_1 DATAFILE 'E:/oracle/product/10.2.0/tablespaces/weblogic.dbf' ...

  3. oracle-创建表空间报错 提示ora-01119 ora-27040:无法创建文件

    create tablespace syx datafile 'D:\yangk\oraclespace\syx.ora' size 1000m; 低级错误,这是因为指定路径的路径问题,因为指定的路径 ...

  4. mysql数据库优化课程---16、mysql慢查询和优化表空间

    mysql数据库优化课程---16.mysql慢查询和优化表空间 一.总结 一句话总结: a.慢查询的话找到存储慢查询的那个日志文件 b.优化表空间的话可以用optimize table sales; ...

  5. MySQL的表空间管理

    表空间: MySQL没有真正意义上的表空间管理. MySQL的Innodb包含两种表空间文件模式,默认的共享表空间和每个表分离的独立表空间. 一般来说,当数据量很小的时候建议使用共享表空间的管理方式. ...

  6. mysql通过表空间来恢复或者传递数据

    mysql的备份工具通常有 mysqldump ,mysqlpump(5.7后新特性)等备份工具,这里我们可以尝试使用表空间进行传递 方式是:拷贝数据文件+拷贝表空间   对应innodb引擎就是 i ...

  7. (二)阿里云ECS Linux服务器外网无法连接MySQL解决方法(报错2003- Can't connect MySQL Server on 'x.x.x.x'(10038))(自己亲身遇到的问题是防火墙的问题已经解决)

    我的服务器买的是阿里云ECS linux系统.为了更好的操作数据库,我希望可以用navicat for mysql管理我的数据库. 当我按照正常的模式去链接mysql的时候, 报错提示: - Can' ...

  8. 导入MySQL测试数据库employee报错

    导入MySQL测试数据库employee 报错 下载地址:https://launchpad.net/test-db/ 上传解压: [root@001 ~]# tar xf employees_db- ...

  9. MySQL 设置root密码报错:mysqladmin: connect to server at 'localhost' failed

    MySQL 设置root密码报错:mysqladmin: connect to server at 'localhost' failed 1.安装完MySQL设置root密码报错如下 [root@vm ...

  10. Django报错:提交表单报错---RuntimeError: You called this URL via POST, but the URL doesn’t end in a slash and you have APPEND_SLASH set.

    Django报错:提交表单报错---RuntimeError: You called this URL via POST, but the URL doesn’t end in a slash and ...

随机推荐

  1. js 全屏代码实现方法

    1 /* 全屏方法 2 * ========= 3 <button class="roll-nav roll-right fullscreen"> 4 <i cl ...

  2. .net core 读取配置文件的几种方式

    一.Json配置文件 1.这里的配置文件指的是下图 2.json配置文件示例 { "Logging": { "LogLevel": { "Defaul ...

  3. Mysql中where if问题

    网上关于Mybatis中where与if的说法乱七八糟的,Myabtis官网写的很清晰.为了防止误导他人,在此记录: 1.where语句+< if > 标签 <select id=& ...

  4. Python绘制神经网络模型图

      本文介绍基于Python语言,对神经网络模型的结构进行可视化绘图的方法.   最近需要进行神经网络结构模型的可视化绘图工作.查阅多种方法后,看到很多方法都比较麻烦,例如单纯利用graphviz模块 ...

  5. Java开发环境配置(win7-64bit)

    Java开发环境配置(win7-64bit) java Java开发环境配置(win7-64bit) Java开发环境配置(win7-64bit) 1.概述 2.文本用到的工具 3.环境变量配置 4. ...

  6. Cesium计算三角形面积(十)

    function triangleArea(p0, p1, p2) { //利用subtract计算出两个向量 let v0=Cesium.Cartesian3.subtract(p0,p1,newC ...

  7. Jetpack Compose学习(11)——Navigation页面导航的使用

    原文:Jetpack Compose学习(11)--Navigation页面导航的使用 - Stars-One的杂货小窝 在Android原生的View开发中的,也是有Navigation,原生我之后 ...

  8. CCRD_TOC_2008年第3期

    中信国健临床通讯 2008年第3期 目 录   银屑病和银屑病关节炎 1.        国际皮肤病专家呼吁重视生物制剂治疗银屑病 原文: http://pharmatimes.com/forums/ ...

  9. LeetCode 39. 组合总和 40.组合总和II 131.分割回文串

    欢迎关注个人公众号:爱喝可可牛奶 LeetCode 39. 组合总和 40.组合总和II 131.分割回文串 LeetCode 39. 组合总和 分析 回溯可看成对二叉树节点进行组合枚举,分为横向和纵 ...

  10. 探索 C 语言的指针

    指针的概念 指针代表一个变量的内存地址,通过&可以拿到变量的内存地址.变量不等于指针,通过*可以拿到指针所指向的变量的值. 在 C 中,存在指针变量,指针变量的声明格式:int* varNam ...