14.10.4 Defragmenting a Table 整理表:

随机插入或者删除从一个secondary index 可以导致index变的fragmented

Fragmentation意味着index pages 物理的顺序在磁盘上不是接近于索引的记录

或者这里有很多的没有使用的pages 在64-page blocks 分配给index.

碎片的征兆是一个表占用了更多的空间,相比它本该占用。

到底是多少, 很难确定。

所有的InnoDB data 和indexes 是存储在B-trees, 它们的填充因子可能从 50% to 100%. 

另外一个征兆是 一个表扫描比如它花费更多的时间 相比它该做的。

SELECT COUNT(*) FROM t WHERE non_indexed_column <> 12345;

前面的查询需要执行一个全表扫描,对于大表查询最慢的一种类型

为了加速索引扫描,你可以周期性的执行一个null  ALTER TABLE operation, 

让mysql 重建表

ALTER TABLE tbl_name ENGINE=INNODB

在Mysql 5.6.3,你可以使用ALTER TABLE tbl_name FORCE 执行一个null alter 操作

来重建表, 先前的FORCE 选项被确认但是忽略

另外一种方式执行一个defragmentation整理操作是用mysqldump 来dump 表到一个文件,

drop table 和从dump 文件加载

如果插入到一个index 总是上升的,记录被删除总是从end,

 InnoDB filespace  管理算法保证了碎片在索引不发生。

最新文章

  1. Java学习过程中的总结的小知识点(长期更新)
  2. sass初级语法
  3. C++中vector的用法
  4. Java为什么会引入及如何使用Unsafe
  5. xp的虚拟机如何访问本地主机上的文件
  6. Spring data redis的一个bug
  7. [置顶] ios 一个不错的图片浏览分享框架demo
  8. Extjs grid 组件
  9. [Poi2010]Monotonicity 2 线段树
  10. VacmMIB
  11. CP342-5做主站的profibus-dp组态应用
  12. 浅谈JAVA8引入的接口默认方法
  13. HBase describe table 参数说明
  14. realm vs. domain
  15. 在SQL Server中创建用户角色及授权
  16. libSVM简介及核函数模型选择
  17. linux平台程序高精度延时问题select-usleep等
  18. SoC FPGA JTAG电路设计 要点
  19. 设计模式--单例模式(学习Learning hard大神笔记实践)
  20. JDK1.8新特性

热门文章

  1. c++中的对象引用(object reference)与对象指针的区别
  2. PPTPD服务端搭建
  3. if语句之求一元二次方程
  4. DTM initialization: failure during startup recovery, retry failed, check segment status (cdbtm.c:1603)
  5. MySQL 出现 The table is full 的解决方法
  6. [javascript]一种兼容性比较好的简单拖拽
  7. 一天一个类--NIO 之Buffer
  8. A valid provisioning profile for this executable was not found.
  9. 在springmvc中controller的一个方法处理多个不同请求
  10. Pencil OJ 02 安装