1、先来看看多次删除插入操作后的表索引情况

mysql> SHOW INDEX FROM `tbl_name`;

+----------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+

| Table | Non_unique | Key_name | Seq_in_index | Column_name |
Collation | Cardinality | Sub_part | Packed | Null | Index_type |
Comment |

+----------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+

| tbl_name | 0 | PRIMARY | 1 | StepID | A
| 1 | NULL | NULL | | BTREE | |

| tbl_name | 1 | FlowID | 1 | FlowID | A
| 1 | NULL | NULL | | BTREE | |

| tbl_name | 1 | WagerCount | 1 | WagerCount | A
| 1 | NULL | NULL | | BTREE | |

| tbl_name | 1 | WagerID_3 | 1 | WagerID | A
| 1 | NULL | NULL | | BTREE | |

| tbl_name | 1 | WagerID_3 | 2 | StepType | A
| 1 | NULL | NULL | | BTREE | |

| tbl_name | 1 | WagerID_3 | 3 | ParamResult | A
| 1 | 255 | NULL | | BTREE | |

| tbl_name | 1 | StepType_2 | 1 | StepType | A
| 1 | NULL | NULL | | BTREE | |

| tbl_name | 1 | StepType_2 | 2 | ParamResult | A
| 1 | 255 | NULL | | BTREE | |

| tbl_name | 1 | WagerID_2 | 1 | WagerID | A
| 1 | NULL | NULL | | BTREE | |

| tbl_name | 1 | WagerID_2 | 2 | StepType | A
| 1 | NULL | NULL | | BTREE | |

| tbl_name | 1 | WagerID_2 | 3 | ParamResult | A
| 1 | 255 | NULL | | BTREE | |

+----------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+

11 rows in set (0.01 sec)

2、优化表

mysql> optimize table tbl_name;

+---------------+----------+----------+----------+

| Table | Op | Msg_type | Msg_text |

+---------------+----------+----------+----------+

| test.tbl_name | optimize | status | OK |

+---------------+----------+----------+----------+

1 row in set (40.60 sec)

3、再来看看优化后的效果

mysql> SHOW INDEX FROM `tbl_name`;

+----------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+

| Table | Non_unique | Key_name | Seq_in_index | Column_name |
Collation | Cardinality | Sub_part | Packed | Null | Index_type |
Comment |

+----------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+

| tbl_name | 0 | PRIMARY | 1 | StepID | A
| 172462 | NULL | NULL | | BTREE | |

| tbl_name | 1 | FlowID | 1 | FlowID | A
| 86231 | NULL | NULL | | BTREE | |

| tbl_name | 1 | WagerCount | 1 | WagerCount | A
| 4311 | NULL | NULL | | BTREE | |

| tbl_name | 1 | WagerID_3 | 1 | WagerID | A
| 86231 | NULL | NULL | | BTREE | |

| tbl_name | 1 | WagerID_3 | 2 | StepType | A
| 172462 | NULL | NULL | | BTREE | |

| tbl_name | 1 | WagerID_3 | 3 | ParamResult | A
| 172462 | 255 | NULL | | BTREE | |

| tbl_name | 1 | StepType_2 | 1 | StepType | A
| 9 | NULL | NULL | | BTREE | |

| tbl_name | 1 | StepType_2 | 2 | ParamResult | A
| 86231 | 255 | NULL | | BTREE | |

| tbl_name | 1 | WagerID_2 | 1 | WagerID | A
| 86231 | NULL | NULL | | BTREE | |

| tbl_name | 1 | WagerID_2 | 2 | StepType | A
| 172462 | NULL | NULL | | BTREE | |

| tbl_name | 1 | WagerID_2 | 3 | ParamResult | A
| 172462 | 255 | NULL | | BTREE | |

+----------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+

最后,来看看手册中关于 OPTIMIZE 的描述:

OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...



如果您已经删除了表的一大部分,或者如果您已经对含有可变长度行的表(含有VARCHAR, BLOB或TEXT列的表)进行了很多更改,则应使用

OPTIMIZE TABLE。被删除的记录被保持在链接清单中,后续的INSERT操作会重新使用旧的记录位置。您可以使用OPTIMIZE TABLE来重新

利用未使用的空间,并整理数据文件的碎片。



在多数的设置中,您根本不需要运行OPTIMIZE TABLE。即使您对可变长度的行进行了大量的更新,您也不需要经常运行,每周一次或每月一次

即可,只对特定的表运行。



OPTIMIZE TABLE只对MyISAM, BDB和InnoDB表起作用。



注意,在OPTIMIZE TABLE运行过程中,MySQL会锁定表。

mysql中OPTIMIZE TABLE的作用的更多相关文章

  1. mysql中OPTIMIZE TABLE的作用

    在使用mysql的时候有时候,可能会发现尽管一张表删除了许多数据,但是这张表表的数据文件和索引文件却奇怪的没有变小.这是因为mysql在删除数据(特别是有Text和BLOB)的时候,会留下许多的数据空 ...

  2. mysql中OPTIMIZE TABLE的作用及使用

    来看看手册中关于 OPTIMIZE 的描述: OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ... 如果您已经删除 ...

  3. MySQL中 optimize table '表名'的作用

    语法: optimize table '表名' 一,原始数据 1,数据量 2,存放在硬盘中的表文件大小 3,查看一下索引信息 索引信息中的列的信息说明. Table :表的名称.Non_unique: ...

  4. MySQL中optimize的作用

    MySQL执行命令delete语句时,如果包括where条件,并不会真正的把数据从表中删除,而是将数据转换成了碎片,通过下面的命令可以查看表中的碎片数量和索引等信息: mysql > show ...

  5. OPTIMIZE TABLE的作用--转载

    当您的库中删除了大量的数据后,您可能会发现数据文件尺寸并没有减小.这是因为删 除操作后在数据文件中留下碎片所致.Discuz! 在系统数设置界面提供了数据表优化的功能,可以去除删除操作后留下的数据文件 ...

  6. mysql之 OPTIMIZE TABLE整理碎片

    来看看手册中关于 OPTIMIZE 的描述: OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ... 如果您已经删除 ...

  7. Mysql中truncate table和delete语句的区别

    Mysql中的truncate table和delete语句都可以删除表里面所有数据,但是在一些情况下有些不同! 例子: truncate table gag; (1)truncate table删除 ...

  8. mysql中参数--init-file的作用是什么呢?

    需求描述: 今天在修改测试环境mysql数据库中root用户密码的时候,用到了--init-file参数, 所以,就在这里说下该参数的作用. 概念解释: 参数:--init-file=file_nam ...

  9. mysql中 show table status 获取表信息

    用法 mysql>show table status; mysql>show table status like 'esf_seller_history'\G; mysql>show ...

随机推荐

  1. selenium 封装

    周末无聊 在家封装一个pyselenium.可能这些封装大家都会使用,但是我还是根据我自己的习惯去选择性的去封装一些在我工作中用的,这样的话,我就不用去看selenium的api的,我可以根据我自己的 ...

  2. css div 细边框

    .item{ max-width:48%; float:left; padding:2px; border-top:1px solid #000; border-left:1px solid #000 ...

  3. Vue 爬坑之路(五)—— 组件进阶

    组件(Component)是 Vue.js 最强大的功能之一,之前的文章都只是用到了基本的封装功能,这次将介绍一些更强大的扩展. 一.基本用法 在使用 vue-cli 创建的项目中,组件的创建非常方便 ...

  4. 转:java.lang.OutOfMemoryError: Java heap space错误及处理办法(收集整理、转)

    以下是从网上找到的关于堆空间溢出的错误解决办法: Java.lang.OutOfMemoryError: Java heap space =============================== ...

  5. Python爬取视频(其实是一篇福利)

    窗外下着小雨,作为单身程序员的我逛着逛着发现一篇好东西,来自知乎 你都用 Python 来做什么?的第一个高亮答案. 到上面去看了看,地址都是明文的,得,赶紧开始吧. 下载流式文件,requests库 ...

  6. TurnipBit—MicroPython开发板:从积木式编程语言开始学做小小创客

    编程.建模.制作动画和游戏--这些当初我们默认只有成年人玩得转的事情,现在早已经被无数小孩子给颠覆甚至玩出新境界了.热爱科技和动手的"创客"(Maker)现在在全世界都炙手可热.今 ...

  7. vue2.0 微信oauth认证的正确调用位置

    运行在微信端的项目,很重要的环节是oauth认证:那在vue项目中,在何时何地调用oauth认证最合适呢? 经过观察,在项目启动过程中,会执行main.js文件:所以我将认证放在main.js中操作: ...

  8. windows系统下使用cd命令

    如果要切换到D:\Program Files目录下,大多数人会想当然的在命令行窗口输入 cd D:\Program Files回车. 如下所示: 发现并没有切换到D:\Program Files. 正 ...

  9. 有关求任意一个正整数的n的因数的个数的求解思路

    已知条件:n=p1^a1xp2^a2xp3^a3........xpk^ak;求解n的因数的个数: 求解的主要思想:递归 设所有的因数的个数为U1: 则U1会等于什么呢? 不妨设求得p2^a2xp3^ ...

  10. HTML知识点总结之ul,ol,li标签

    HTML列表分为有序列表,无序列表和描述列表.我们常用的是有序列表(ol)与无序列表(ul). 有序列表 <ol>标签就可以定义一个有序列表,之所以称其为有序列表,是因为可以使列表具有排序 ...