最近发现数据库有多余空间被占用,这是由于我们清理了一些数据空间没有释放导致的,这个使用我们可以使用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命令优化数据表的全部内容了,希望对大家有所帮助,按照上面方式就可以解决,了解更多相关文章请关注吾爱编程网!