云梦编程网

当前位置:首页 > 数据库教程 >

mysql optimize优化表

作者:佚名 时间:2024-01-09 12:52:03 阅读:(63)

最近发些服务器的空间变小了,查看硬盘发现主要输数据库占用的空间,清理了一些数据库多余数据数据的空间并没有释放掉,这个时候我们可以使用mysql的optimize table命令来优化空间,有需要的小伙伴可以参考一下:

1、使用场景:

    当我们对MySQL进行大量的增删改操作的时候,很容易导致一些碎片的产生,这些碎片占据着空间,就可能会出现删除很多数据之后,数据文件大小并只有细微变化的现象。当然在我们新插入的数据的时候仍然会利用这些碎片。

2、作用:

    对于MySQL不一样的数据库存储引擎,在使用optimize清除碎片,回收闲置的数据库空间,把分散存储(fragmented)的数据和索引重新挪到一起(defragmentation),对I/O速度有好处。

3、实例:

    (1)、查看数据碎片:

show table status like '表名' 

    (2)、InnoDB存储引擎优化表

OPTIMIZE TABLE 表名
     如果开启了独享表空间,执行命令会提示:Table does not support optimize, doing recreate + analyze instead

    (3)、MyISAM存储引擎优化表

	optimize table 表

    当我们打算一次优化多张数据表的时候,可以使用逗号分隔

	optimize table 表1[,表2][,表3]

4、注意事项:

optimize在对表进行操作的时候,会加锁,所以不宜经常在程序中调用。

5、什么是共享表空间和独立表空间?:

   (1)、共享表空间:指的是数据库的所有的表数据,索引文件全部放在一个文件中,默认这个共享表空间的文件路径在data目录下。

   (2)、独立表空间:每一个表都将会生成以独立的文件方式来进行存储。共享表空间和独立表空间最大的区别是如果把表放再共享表空间,即使表删除了空间也不会删除,所以表依然很大,而独立表空间如果删除表就会清除空间


以上就是云梦编程为大家介绍的关于mysql使用optimiz命令优化数据表的全部内容了,希望对大家有所帮助,了解更多相关文章请关注云梦编程网!

最新文章

热门文章