mysql怎么整理碎片 2021中国银行国庆放几天假

MySQL索引碎片整理查看碎片信息:
Index_length 代表索引的总量
Data_free 代表碎片数量
从information_schema中获取信息:
碎片整理:
过程时间长短取决于表大小和碎片多少,
返回结果optimize status OK则整理完成;
碎片整理过程会添加表级排他锁,需要找非繁忙期进行操作 。
MySQL—碎片整理删除数据必然会在数据文件中造成不连续的空白空间,而当插入数据时,这些空白空间则会被利用起来.于是造成mysql怎么整理碎片了数据的存储位置不连续,以及物理存储顺序与理论上的排序顺序不同,这种是数据碎片.实际上数据碎片分为两种,一种是单行数据碎片,另一种是多行数据碎片.前者的意思就是一行数据,被分成N个片段,存储在N个位置.后者的就是多行数据并未按照逻辑上的顺序排列.当有大量的删除和插入操作时,必然会产生很多未使用的空白空间,这些空间就是多出来的额外空间.索引也是文件数据,所以也会产生索引碎片,理由同上,大概就是顺序紊乱的问题.Engine 不同,OPTIMIZE 的操作也不一样的,MyISAM 因为索引和数据是分开的,所以 OPTIMIZE 可以整理数据文件,并重排索引 。这样不但会浪费空间mysql怎么整理碎片 , 并且查询速度也更慢 。
查看碎片信息mysql怎么整理碎片:
Index_length 代表索引的总量
Data_free 代表碎片数量
从information_schema中获取信息:
碎片整理:
过程时间长短取决于表大小和碎片多少mysql怎么整理碎片 , 
返回结果optimize status OK则整理完成mysql怎么整理碎片;
Mysql中删除数据造成的碎片如何修复我们都知道,在mysql (这里只探讨innodb) 中delete数据,并非真实删除,而是在这行数据上打了一个del的标记,所以这行占用的空间也并不会释放,但是空间可以被复用,所以期望用delete数据来释放空间的同学可以醒醒了 。这样就造成了空间上的碎片 , 那么如果干掉这些碎片呢 。
这里先说结论,alter table语句可以触发表重建,消除碎片空间 。
mysql中的数据存储结构大概是下面这个样子的
而delete掉的标记会记录在头信息中 。
做个实验,看看空间是否真的没有释放;
创建一张表user,并插入很多数据
查看表的文件大小
再随便插入几条
ok这里看到文件大小增加了16k,这是因为mysql的一页就是16k,所以文件大小是16k、16k的增长的 。
这时候我们删除大量的数据再次查看文件大小,仍然是272k,索命 , 数据虽然删除,但是空间没有释放 。
这里我们对主键执行一个alter table语句
再次查看文件大小
ok 文件大小明显的减少 , 这里说明主键的alter语句会重建表,并且释放碎片空间;
这时候我们再删除大量的数据再次查看文件大小,这里我们对普通列执行一个alter table语句
再次查看文件大小
ok 文件大小明显的减少,这里说明普通列的alter语句会重建表,并且释放碎片空间;
MySQL缓存 mysql 开启查询缓存可以有两种方法来开启一种是使用set命令来进行开启mysql怎么整理碎片,另一种是直接修改my.ini文件来直接设置都是非常mysql怎么整理碎片的简单的哦 。
【mysql怎么整理碎片 2021中国银行国庆放几天假】 开启缓存mysql怎么整理碎片,设置缓存大小,具体实施如下mysql怎么整理碎片:
windows下是my.ini,linux下是my.cnf;
在配置文件的最后追加上:
需要重启mysql生效;
b) 开启缓存,两种方式:
a)使用mysql命令:
如果报错:
Query cache is disabled; restart the server with query_cache_type=1 to enable it,还是老老实实的该配置文件,然后重启吧,原因如下:

推荐阅读