返回顶部
首页 > 资讯 > 数据库 >mysql中如何优化表释放表空间
  • 899
分享到

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

mysql优化表释放表空间mysql表空间 2023-02-18 15:02:49 899人浏览 八月长安
摘要

目录Mysql优化表释放表空间mysql空间释放查询占用空间大小清理碎片总结mysql优化表释放表空间 方法一:optimize table table_name 这是我们经常见到的

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。

总结

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

您可能感兴趣的文档:

--结束END--

本文标题: mysql中如何优化表释放表空间

本文链接: https://lsjlt.com/news/196714.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • mysql中如何优化表释放表空间
    目录mysql优化表释放表空间mysql空间释放查询占用空间大小清理碎片总结mysql优化表释放表空间 方法一:optimize table table_name 这是我们经常见到的...
    99+
    2023-02-18
    mysql优化表 释放表空间 mysql表空间
  • MySQL临时表空间满了如何释放
    MySQL临时表空间是用于存储临时表数据的空间,当空间满了时,可以通过以下方法释放空间: 清空临时表数据:可以通过删除或者清空临时...
    99+
    2024-05-06
    mysql
  • sqlserver如何删除表释放空间
    在SQL Server中,要删除一个表并释放其占用的空间,可以使用以下步骤: 打开SQL Server Management St...
    99+
    2024-04-09
    sqlserver
  • db2表空间满了如何释放
    当DB2表空间已满时,可以尝试以下几种方法来释放空间: 清理无用数据:首先可以通过删除无用数据或者归档历史数据来释放空间。可以通...
    99+
    2024-04-09
    db2
  • oracle临时表空间如何释放
    在Oracle数据库中,临时表空间是用来存储临时数据的空间,一般用于排序、连接、分组等操作。临时表空间的释放可以通过以下步骤进行: ...
    99+
    2024-04-09
    oracle
  • oracle如何释放表空间文件
    在Oracle数据库中,要释放表空间文件,可以按照以下步骤操作: 首先,确保没有表或索引在使用要释放的表空间文件。 在SQL...
    99+
    2024-04-09
    oracle
  • hbase如何删除表释放空间
    在HBase中删除表并释放空间,可以通过以下步骤完成: 首先,在HBase Shell或HBase客户端中连接到HBase集群。...
    99+
    2024-04-19
    hbase
  • oracle临时表空间不足如何释放
    在Oracle数据库中,临时表空间不足可能是由于临时表空间的大小不足或者是由于其他会话占用了过多的临时表空间。为了释放临时表空间,可...
    99+
    2024-04-09
    oracle
  • mysql释放表空间的方法是什么
    在MySQL中,释放表空间的方法是通过使用ALTER TABLE语句来重建表来实现。具体步骤如下: 执行以下查询语句查看表的存储引...
    99+
    2024-04-09
    mysql
  • oracle临时表空间不释放如何解决
    如果Oracle临时表空间不释放,可以尝试以下方法解决:1. 检查是否有长时间运行的事务或会话占用了临时表空间。可以使用以下查询语句...
    99+
    2023-09-15
    oracle
  • oracle怎么释放临时表空间
    要释放Oracle数据库中的临时表空间,可以按照以下步骤进行操作:1. 首先,确保当前会话没有使用该临时表空间。可以通过执行以下查询...
    99+
    2023-09-28
    oracle
  • oracle 删除用户后释放表空间
    有个用户占用大量存储。删除之后表空间没有释放。。。。 网上百度一番后: 先使用语句查询表空间大小 HWM。HWM说明参考:https://www.cnblogs.com/husam/p/6604437.html select...
    99+
    2019-10-09
    oracle 删除用户后释放表空间
  • oracle中drop表后无法释放空间怎么办
    在Oracle中,当使用DROP TABLE命令删除表时,实际上并不会立即释放表所占用的存储空间,而是将表移到回收站中。这是为了防止...
    99+
    2024-04-09
    oracle
  • oracle 收缩表、清理碎片,释放空间
    可以用来收缩段,消除空间碎片的方法有两种: 1.alter table table_name move 需要注意: 1)move操作会锁表。(如果是很小的表,可以在线做。如果是大表一定要注意,会长...
    99+
    2024-04-02
  • db2释放表空间的方法是什么
    要释放一个表空间,可以按以下步骤操作: 确保表空间中没有任何表或索引。 使用以下命令释放表空间: DROP TABLESPACE...
    99+
    2024-04-09
    db2
  • mysql中如何查看表空间
    目录mysql 查看表空间mysql 临时表空间不足解决查找思路以及解决方案总结mysql 查看表空间 主要是查看创建的库和系统自带的库大小 - SELECT table_schema, conca...
    99+
    2023-02-18
    mysql查看表空间 mysql表空间 表空间查看
  • oracle undo表空间释放的方法是什么
    Oracle中释放undo表空间的方法有以下几种: 使用回滚段管理器(Rollback Segment Management)进...
    99+
    2023-10-26
    oracle
  • oracle删除数据后怎么释放表空间
    在Oracle数据库中,使用DELETE语句删除数据只会删除数据行,而不会释放表空间。如果需要释放表空间,可以使用以下方法: 使...
    99+
    2023-10-26
    oracle
  • 如何优化MySQL表?
    优化 MySQL 表是提高数据库性能和效率的关键一步。通过采用有效的优化技术,您可以提高查询执行速度、降低存储要求并优化资源利用率。本文探讨了优化 MySQL 表的各种策略和最佳实践,使您能够最大限度地提高数据库驱动的应用程序的性能。 在本...
    99+
    2023-10-22
  • 在Android应用中如何释放空间
    这篇文章将为大家详细讲解有关在Android应用中如何释放空间,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在网上搜索找到两种方法:if (Build.VERSION.SDK_INT >...
    99+
    2023-05-31
    android roi
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作