我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

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

使用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(你的表名)';

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

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

清理碎片

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

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

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

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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

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

这篇文章主要介绍了mysql中如何优化表释放表空间问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-02-18

MySQL临时表空间满了如何释放

MySQL临时表空间是用于存储临时表数据的空间,当空间满了时,可以通过以下方法释放空间:清空临时表数据:可以通过删除或者清空临时表数据来释放空间。可以使用以下语句来清空临时表数据:TRUNCATE TABLE temp_table;重启My
MySQL临时表空间满了如何释放
2024-05-06

oracle如何释放表空间文件

在Oracle数据库中,要释放表空间文件,可以按照以下步骤操作:首先,确保没有表或索引在使用要释放的表空间文件。在SQL*Plus或SQL Developer等工具中连接到Oracle数据库。使用以下SQL语句查询当前Oracle实例中的表
oracle如何释放表空间文件
2024-04-09

sqlserver如何删除表释放空间

在SQL Server中,要删除一个表并释放其占用的空间,可以使用以下步骤:打开SQL Server Management Studio并连接到相应的数据库实例。在“对象资源管理器”中找到要删除的表所在的数据库,并展开该数据库。右键单击
sqlserver如何删除表释放空间
2024-04-09

hbase如何删除表释放空间

在HBase中删除表并释放空间,可以通过以下步骤完成:首先,在HBase Shell或HBase客户端中连接到HBase集群。使用以下命令删除表:disable 'table_name'drop 'table_name'其中,table_
hbase如何删除表释放空间
2024-04-19

db2表空间满了如何释放

当DB2表空间已满时,可以尝试以下几种方法来释放空间:清理无用数据:首先可以通过删除无用数据或者归档历史数据来释放空间。可以通过删除不再需要的记录或者将历史数据归档到其他存储位置来减少表空间的使用量。重新组织表空间:可以通过重新组织表空间来
db2表空间满了如何释放
2024-04-09

oracle临时表空间如何释放

在Oracle数据库中,临时表空间是用来存储临时数据的空间,一般用于排序、连接、分组等操作。临时表空间的释放可以通过以下步骤进行:确认当前是否还有会话在使用临时表空间。可以通过查询v$session视图或v$sort_usage视图来查看当
oracle临时表空间如何释放
2024-04-09

mysql释放表空间的方法示例

目录前言optimize table使用注意事项前言myspythonql中日志表占用了200多g,表中数据delete之后,但是表占用的空间没有释放。记录处理过程optimize table使用“OPTIMIZE TAB
mysql释放表空间的方法示例
2024-08-14

oracle临时表空间不足如何释放

在Oracle数据库中,临时表空间不足可能是由于临时表空间的大小不足或者是由于其他会话占用了过多的临时表空间。为了释放临时表空间,可以采取以下几种方法:增加临时表空间的大小:可以通过ALTER TABLESPACE语句来增加临时表空间的大小
oracle临时表空间不足如何释放
2024-04-09

mysql释放表空间的方法是什么

在MySQL中,释放表空间的方法是通过使用ALTER TABLE语句来重建表来实现。具体步骤如下:执行以下查询语句查看表的存储引擎和表空间大小:SHOW TABLE STATUS LIKE 'table_name';如果
mysql释放表空间的方法是什么
2024-04-09

oracle临时表空间不释放如何解决

如果Oracle临时表空间不释放,可以尝试以下方法解决:1. 检查是否有长时间运行的事务或会话占用了临时表空间。可以使用以下查询语句来查找:```SELECT s.sid, s.serial#, p.spid, s.username, s.
2023-09-15

oracle中drop表后无法释放空间怎么办

在Oracle中,当使用DROP TABLE命令删除表时,实际上并不会立即释放表所占用的存储空间,而是将表移到回收站中。这是为了防止意外删除表后无法恢复数据。如果您希望立即释放表所占用的存储空间,可以使用以下方法:使用PURGE命令永久删
oracle中drop表后无法释放空间怎么办
2024-04-09

mysql中如何查看表空间

目录mysql 查看表空间mysql 临时表空间不足解决查找思路以及解决方案总结mysql 查看表空间主要是查看创建的库和系统自带的库大小- SE编程客栈LECT table_schema,conc编程客栈at(sum(round(rR
2023-02-18

如何优化MySQL表?

优化 MySQL 表是提高数据库性能和效率的关键一步。通过采用有效的优化技术,您可以提高查询执行速度、降低存储要求并优化资源利用率。本文探讨了优化 MySQL 表的各种策略和最佳实践,使您能够最大限度地提高数据库驱动的应用程序的性能。在本
2023-10-22

在Android应用中如何释放空间

这篇文章将为大家详细讲解有关在Android应用中如何释放空间,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在网上搜索找到两种方法:if (Build.VERSION.SDK_INT >=
2023-05-31

mysql表空间满了如何处理

当MySQL表空间满了时,可以采取以下几种处理方式:清理不必要的数据:可以通过删除不必要的数据或者归档历史数据来释放表空间。优化表结构:可以通过优化表结构,如删除不必要的索引、调整字段类型和长度等方式来减少表空间的使用。增加表空间:可以
mysql表空间满了如何处理
2024-04-09

如何实现MySQL中优化表的语句?

《MySQL优化表的语句及具体代码示例》在日常的数据库管理中,优化MySQL表的性能是非常重要的。通过优化表的语句,可以提高查询和更新的速度,减少资源的占用,提高系统的性能。本文将介绍如何通过具体的代码示例来优化MySQL表的性能。优化表结
如何实现MySQL中优化表的语句?
2023-11-08

编程热搜

目录