MySQL 索引重建

当你对InnoDB进行修改操作时,例如删除一些行,这些行只是被标记为“已删除”,而不是真的从索引中物理删除了,因而空间也没有真的被释放回收。

InnoDB的Purge线程会异步的来清理这些没用的索引键和行,但是依然没有把这些释放出来的空间还给操作系统重新使用,因而会导致页面中存在很多空洞。

如果表结构中包含动态长度字段,那么这些空洞甚至可能不能被InnoDB重新用来存新的行,因为空间空间长度不足。

有些用户可能会使用 OPTIMIZE TABLE 或者 ALTER TABLE

并且如果你用的是共享表空间方式,OPTIMIZE TABLE 会导致你的共享表空间文件持续增大,因为整理的索引和数据都追加在数据文件的末尾。

InnoDB类型的表是无法使用optimize table命令

## 重新索引k

一、

alter table T drop index k;

alter table T add index(k);

## 重建主键索引

一、

alter table T drop primary key;

alter table T add primary key(id);

二、

alter table T engine=InnoDB;

可以释放空洞,这是由于在转换数据引擎(即使没有真正转换)的时候,会将表中的所有数据读取,再重新写入,这个过程中,会释放空洞(效率慢)

mysql 物理删除 索引_MySQL 索引重建相关推荐

  1. mysql物理删除索引_Oracle与MySQL删除字段时对索引和约束的处理

    不知道有多少人清楚的知道,在Oracle中,如果一个复合索引,假定索引(a,b,c)三个字段,删除了(包括unused)其中一个字段,Oracle会怎么处理这个索引.同样,如果是约束,Oracle又怎 ...

  2. mysql中索引创建 查看和删除语句_MySQL索引的创建、删除和查看(学习中)

    1.索引作用 在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率.特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍. 例如,有 ...

  3. mysql创建和修改索引_MySQL索引创建 删除 增加 修改命令

    简单的唯一索引: 可以创建一个唯一索引的表.唯一的索引意味着两个行不能拥有相同的索引值.这里是语法来创建索引的表 代码如下 CREATE UNIQUE INDEX index_name ON tabl ...

  4. mysql索引的创建和删除吗_MySQL索引的创建、删除和查看

    此文转自http://blogold.chinaunix.net/u3/93470/showart_2001536.html 1.索引作用 在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的 ...

  5. mysql 大量数据 更改索引_Mysql索引数据结构详解与索引优化

    本篇文章主要学习了MySQL的索引的数据结构的认识,做一个大概的了解即可. 一.索引 在关系数据库中,索引是一种单独的.物理的对数据库表中一列或多列的值进行排序的一种存储数据结构,它是某个表中一列或若 ...

  6. mysql 织梦 索引_Mysql索引详解 建立索引的优势劣势以及索引规范

    索引是什么 索引(index)是帮助MySQL高效获取数据的数据结构 如果没有特别指明,都是指的是B树索引(多路搜索树,并不一定是二叉树)结构组织的索引 建立索引的优势和劣势 优势 提高数据检索的效率 ...

  7. mysql主键索引_MySQL索引之主键索引

    在MySQL里,主键索引和辅助索引分别是什么意思,有什么区别? 上次的分享我们介绍了聚集索引和非聚集索引的区别,本次我们继续介绍主键索引和辅助索引的区别. 1.主键索引 主键索引,简称主键,原文是PR ...

  8. mysql字段简索引_Mysql索引优化攻略(全)

    所谓索引就是为特定的mysql字段进行一些特定的算法排序,比如二叉树的算法和哈希算法,哈希算法是通过建立特征值,然后根据特征值来快速查找.而用的最多,并且是mysql默认的就是二叉树算法 BTREE, ...

  9. authentication method mysql 8.0查询_mysql 索引整理

    一.MySQL 索引 MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度. 为何要有索引? ​ 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更 ...

  10. mysql 导入数据 索引_MySQL 索引、数据导入、数据导出

    1.定义:对数据库表的一列或多列的值进行排序的一种结构(Btree方式) 2.优点:加快数据检索速度 3.缺点:占用物理存储空间:当对表中数据更新时,索引需要动态维护,降低数据维护速度 4.索引示例 ...

最新文章

  1. Git基本命令和GitFlow工作流
  2. iptables总结
  3. [CF413D]2048
  4. c\c++ 随机数函数
  5. c语言开发游戏趋势,都9012年了,为何我还坚持用C语言开发游戏
  6. python写空气质量提醒_Python数据可视化:2018年空气质量分析
  7. 深度推荐模型(EDRMs):面向Web级应用的基于二进制码的Hash Embedding
  8. 中国开杯闪点测试仪行业市场供需与战略研究报告
  9. Acwing第 38 场周赛
  10. qt之tcp通信,制作简易的仿qq功能
  11. 新手学编程?选python吧!
  12. 前端多语言开发,如何中英文切换
  13. ubuntu图形界面乱码解决办法
  14. Nuscenes 完整版数据集批量下载
  15. 【技巧】搭建企业公司网站的实施步骤有哪些
  16. JAVA基础英语单词
  17. 廖雪峰老师个人网站推荐
  18. 数字后端基础——各种缩写定义
  19. 直线电机对比直线模组有哪些优点
  20. 关系数据库设计---练习题

热门文章

  1. 两个水平排列的div顶部对齐~详细
  2. 【linux笔记】常用命令(3):文件相关
  3. 【王道计组笔记】总线(2):性能指标分析
  4. 【java笔记】ArrayList类的使用
  5. FFmpeg源代码简单分析:libavdevice的avdevice_register_all()
  6. C# 删除 文件 里面的第一行数据
  7. Maven引用本地jar并在打war包时引用jar
  8. oracle主机自增,Oracle中实现ID自增
  9. 【CCCC】L2-008 最长对称子串 (25分),直接枚举遍历
  10. 【NOIP2015】【Luogu2670】扫雷游戏(搜索,字符串输入输出)