mysql中如何优化表释放表空间

作者:风神幻龙 时间:2024-01-18 09:58:27 

mysql优化表释放表空间

方法一:optimize table table_name

这是我们经常见到的方法,这里就不在过多介绍。

方法二:alter table table_name engine=engine_name

该方法通常用于切换表的引擎,例如MyISAM转为InnoDB,但是同样适用于释放表空间,只不过切换后的引擎和原来的engine相同罢了。

注意事项

1.这两种方式都适用于我们常用的表,myisam和innodb。

2.优化表的时候会锁表,数据表越大,耗时越长,因此不要在网站忙时进行表优化。

mysql空间释放

今天还原了一个数据库。发现数据量有数十GB,想着看看哪些表的数据量多,于是查询了下。数据还真不少。3000多万行,这儿一张表居然有近1400万数据。....惭愧。以前没做什么处理。

USE information_schema; # 使用数据库元数据;
SELECT table_name,table_rows FROM TABLES WHERE table_schema = 'tjpro' order by table_rows desc; #查询表名和表行数,数据库为tjpro 
SELECT sum(table_rows) FROM tables WHERE table_schema = 'tjpro'; #统计行数
SELECT table_name,table_rows FROM tables WHERE table_schema = 'tjpro' order by table_rows desc limit 100; #查询最多行数的表前100

mysql中如何优化表释放表空间

mysql中如何优化表释放表空间

使用delete删除mysql数据的时候,mysql并没有把数据文件删除,而是将数据文件的标识位删除,没有整理文件,因此不会彻底释放空间。被删除的数据将会被保存在一个链接清单中,当有新数据写入的时候,mysql会利用这些已删除的空间再写入。即,删除操作会带来一些数据碎片,正是这些碎片在占用硬盘空间。 -- 引自mysql

如何整理,清理这些空间呢,请往下看。

查询占用空间大小

这时候,我删除了数据最多的mis_system_data_remind_mas 表(测试库哟)之后。我再次查询该表占用的空间大小。

SELECT TABLE_NAME, (DATA_LENGTH+INDEX_LENGTH)/1048576, TABLE_ROWS FROM information_schema.tables WHERE TABLE_SCHEMA='dbname' AND TABLE_NAME='tablename(你的表名)';

mysql中如何优化表释放表空间

默认是M为单位。第二栏。约为2.8个GB大小。

  • 然后清理一下。使用:OPTIMIZE TABLE

清理碎片

官方推荐使用 OPTIMIZE TABLE 命令来优化表,该命令会重新利用未使用的空间,并整理数据文件的碎片。

mysql中如何优化表释放表空间

等待的时间有点长。等完成后,再次查询空间:

SELECT TABLE_NAME, (DATA_LENGTH+INDEX_LENGTH)/1048576, TABLE_ROWS FROM information_schema.tables WHERE TABLE_SCHEMA='dbname' AND TABLE_NAME='tablename(你的表名)';

mysql中如何优化表释放表空间

可以看到,释放的空间约为2.8GB。

来源:https://blog.csdn.net/a7442358/article/details/88312517

标签:mysql,优化表,释放,表空间
0
投稿

猜你喜欢

  • SQL文本字段的数字排序问题

    2008-11-18 16:47:00
  • 520使用Python实现“我爱你”表白

    2022-07-16 05:25:47
  • JS onmousemove鼠标移动坐标接龙DIV效果实例

    2023-08-08 19:59:13
  • 如何捕获人家站点的页面?

    2009-11-11 19:19:00
  • 使用Python从零开始撸一个区块链

    2021-06-02 07:28:22
  • python绘图subplots函数使用模板的示例代码

    2023-05-23 06:05:01
  • 使用线框图来简化你的产品设计流程

    2011-06-10 13:10:00
  • Python实现七大查找算法的示例代码

    2021-05-28 07:33:35
  • 如何通过Python的pyttsx3库将文字转为音频

    2023-01-11 19:54:59
  • numpy数组合并和矩阵拼接的实现

    2022-09-05 19:39:54
  • JS性能优化笔记搜索整理

    2024-04-17 09:54:55
  • Go 语言下基于Redis分布式锁的实现方式

    2024-04-25 13:17:24
  • 简单了解django索引的相关知识

    2021-10-01 14:55:43
  • nodeJS express路由学习req.body与req.query方法实例详解

    2024-06-05 09:52:34
  • python 包之 threading 多线程

    2021-06-03 19:54:41
  • Django前后端分离csrf token获取方式

    2021-03-15 04:23:43
  • 利用Python为女神制作一个专属网站

    2021-07-26 23:16:30
  • python梯度下降算法的实现

    2022-01-25 11:11:09
  • CSS实现HTML元素透明的那些事

    2010-02-01 12:34:00
  • Python实现arctan换算角度的示例

    2023-07-16 20:31:28
  • asp之家 网络编程 m.aspxhome.com