`

mysql碎片整理方法

阅读更多

  对于一个表如果经常插入数据和删除数据,则会产生很多不连续的碎片,这样久而久之,这个表就会占用很大空间,但实际上表里面的记录数却很少,这样不但会浪费空间,并且查询速度也更慢,因此为了解决这个问题,可以有以下解决方案

 

1、myisam存储引擎清理碎片方法

 

 OPTIMIZE TABLE table_name 

 

2、innodb存储引擎清理碎片方法

 

ALTER TABLE tablename ENGINE=InnoDB

 

 

3、查看表碎片的方法

 

mysql> select ROW_FORMAT,TABLE_ROWS,DATA_LENGTH,INDEX_LENGTH,MAX_DATA_LENGTH,DATA_FREE,ENGINE from TABLES where TABLE_SCHEMA='test_db' and TABLE_NAME='test_table' limit 1;



 

 通过OPTIMIZE TABLE test_table后再查询一下结果如下:



 

 

从上面的DATA_FREE字段可以看出碎片空间很大

 

Engine不同,OPTIMIZE 的操作也不一样的,MyISAM 因为索引和数据是分开的,所以 OPTIMIZE 可以整理数据文件,并重排索引.

 

OPTIMIZE 操作会暂时锁住表,而且数据量越大,耗费的时间也越长,它毕竟不是简单查询操作.所以把 Optimize 命令放在程序中是不妥当的,不管设置的命中率多低,当访问量增大的时候,整体命中率也会上升,这样肯定会对程序的运行效率造成很大影响.比较好的方式就是做个shell,定期检查mysql中 `information_schema`.`TABLES`字段,查看 DATA_FREE 字段,大于0话,就表示有碎片

 

 

  • 大小: 11.9 KB
  • 大小: 11.4 KB
2
0
分享到:
评论

相关推荐

    mysql 清碎片

    #### 三、MySQL清理碎片的方法 针对不同的存储引擎,清理碎片的方式也有所不同: 1. **MyISAM引擎**: - 可以使用`OPTIMIZE TABLE`命令来重新组织表,并回收未使用的空间。 - 示例命令: ```sql OPTIMIZE ...

    辛星杂谈之mysql中的数据碎片

    在数据库管理中,数据碎片是一...对于那些经常进行数据增删改查操作的数据库来说,定期的数据碎片整理尤为重要。同时,针对数据碎片的管理,也有必要制定一套完整、合理的数据库维护策略,以确保数据库长期高效地运行。

    解析mysql 表中的碎片产生原因以及清理

    本文将详细分析MySQL表中碎片产生的原因,并且介绍相应的清理方法。 首先,了解MySQL存储引擎是很重要的。MySQL支持多种存储引擎,常见的有InnoDB和MyISAM。不同存储引擎在处理碎片方面有不同的机制和操作方式。 ...

    MySQL 清除表空间碎片的实例详解

    2. **InnoDB表**:对于InnoDB,可以使用`ALTER TABLE 表名 ENGINE=InnoDB`来改变表的存储引擎,实际上也会执行一种形式的碎片整理。由于InnoDB的事务特性,这个过程可能会更复杂且耗时。 ### 清理建议 - 清理碎片...

    mysql笔记,mysql优化图解

    h: 定时的去清除不需要的数据,定时进行碎片整理(MyISAM) 什么样的表才是符合3NF (范式) 表的范式,是首先符合1NF, 才能满足2NF , 进一步满足3NF 1NF: 即表的列的具有原子性,不可再分解,即列的信息,不能分解,...

    DU-MySQL-Search-Win-V6.3

    当mysql被删库、删表、勒索病毒破坏后,用文件恢复工具通常无法恢复出表文件,或者恢复出的表文件内容为乱码,mysql无法正常识别加载,这时需要用mysql碎片扫描工具扫描残存的表数据,可搜索mysql5/8版本InnoDB表...

    MYSQL 优化常用方法实例教程

    1. 定期分析与优化表:使用ANALYZE TABLE和OPTIMIZE TABLE命令,更新统计信息,整理碎片。 2. 清理无用数据:定期删除或归档不再需要的数据,保持数据库整洁。 总结,MySQL优化是一个涉及多方面的工作,包括查询...

    QTP 11连接Mysql数据库的demo

    通过QTP连接到Mysql的一个小demo,自己研究的整理了份文档,供需要的朋友们研究

    mysql5.1.51

    此外,InnoDB 支持表空间管理和自动碎片整理,有助于保持数据的整洁与高效。 2. **分区功能**:MySQL 5.1 引入了表分区功能,允许将大型表分成更易管理和查询的部分。这提高了大规模数据的查询速度,特别是对于复杂...

    mysql软件32位

    - **定期维护**:定期检查数据库性能,进行碎片整理、日志清理等维护工作。 - **安全更新**:关注MySQL的官方更新,及时打补丁以防止安全漏洞。 总的来说,32位MySQL 5.5.34是一个强大的数据库解决方案,适合于...

    重建索引,整理索引碎片

    重建索引,整理索引碎片,优化sql执行速度

    MySQL备份与恢复实战(PDF版)

    包含下列主题:mysql 日志文件,使用mysqld 加相应选项来启用某种日志。Mysql完全备份及恢复:mysqldump 对MyISAM 或InnoDB 完全备份,mysqlhotcopy 对MyISAM 完全备份。...Innodb 表的碎片整理和模糊检查点。

    mysql优化整理文档

    2. **工具推荐**:使用`OPTIMIZE TABLE`命令进行碎片整理。 #### 十、备份与恢复 1. **手动备份**:使用`mysqldump`命令进行数据库备份。 2. **自动备份**:通过设置定时任务自动执行备份脚本。 3. **恢复方法**:...

    Mysql数据库优化笔记(细节决定成败)

    对mysql优化时一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索引、主键索引、唯一索引unique、全文索引] ...h: 定时的去清除不需要的数据,定时进行碎片整理(MyISAM)

    SQLyog MySQL GUI 10.5.1-0

    - 表优化:包括索引分析、表重构和碎片整理,提升数据库性能。 - 查询优化器:分析SQL查询执行计划,推荐优化策略。 3. **安全性与权限管理**: - 用户管理:轻松创建、修改和删除MySQL用户,设置权限,确保...

    mysql的使用心得

    整理MyISAM碎片** - **方法一** - 定期运行 `OPTIMIZE TABLE` 命令。 - **方法二** - 使用`mysqldump`导出数据再重新导入。 - **注意事项** - 对于大数据量表,建议采用第一种方法。 **2. 整理InnoDB碎片** ...

    高效MySQL的N个习惯- 叶金荣 MySQL如何保持高效运行

    定期进行OPTIMIZE TABLE以整理碎片,保持数据文件的整洁。 4. **适当内存调优**:调整MySQL的缓冲池大小(如innodb_buffer_pool_size),以缓存更多的数据和索引,减少磁盘I/O。同时,根据系统资源分配其他内存参数...

Global site tag (gtag.js) - Google Analytics