`

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)表的存储会出现碎片化,每当删除了一行内容,该段空间就会变为空白、被留空,而在一段时间内的大量删除操作,会使这种留空的空间变得比存储列表内容所使用的...

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

    对于不同的存储引擎整理碎片的方式不一样。myisam可以有以下方式:mysql> show table status from test like ‘testusers’\G*************************** 1. row *************************** …. Rows: 3 Avg_...

    mysql笔记,mysql优化图解

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

    DU-MySQL-Search-Win-V6.3

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

    QTP 11连接Mysql数据库的demo

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

    重建索引,整理索引碎片

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

    mysql优化笔记.doc

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

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

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

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

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

    史上最牛逼的mysql性能优化方案

    1 数据表结构的设计与性能优化 2 索引优化 3 多表联查优化 4 并发和阻塞问题 5 日志库优化 6 MySql配置优化 7 CentOS参数优化 8 MySQL服务器监控 9 SQL语句性能优化 9.2 、子查询优化 ...10 MySQL碎片整理方案

    MySQL管理之道 性能调优、高可用与监控.part2.rar

    《mysql管理之道:性能调优、高可用与监控》由资深mysql专家撰写,以最新的mysql版本为基础,以构建高性能...11.1 数据碎片整理方案 292 11.2 用户信息表水平拆表方案 296 11.3 阿里巴巴中间件cobar水平拆表方案 299

    Mysql优化资料

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

    MySQL优化全攻略-相关数据库命令

    文中介绍了相关的数据库命令:SHOW,SHOW命令除了能够显示出MySQL服务器整体...OPTIMIZE,OPTIMIZE能够恢复和整理磁盘空间以及数据碎片,一旦对包含变长行的表进行了大量的更新或者删除,进行这个操作就非常有必要了。

    mysql各种优化

    语句优化 索引的使用 翻页优化 碎片整理 分区分表

    mysql之delete删除记录后数据库大小不变

    当DELETE后面跟条件的时候,则就会出现这个问题 delete from table_name ...DELETE只是将数据标识位删除,并没有整理数据文件,当插入新数据后,会再次使用这些被置为删除标识的记录空间,可以使用OPTIMIZE TABLE来回收

    21条MySQL优化建议(经验总结)

    今天一个朋友向我咨询怎么去优化 MySQL,我按着思维整理了一下,大概粗的可以分为21个方向。 还有一些细节东西(table cache, 表设计,索引设计,程序端缓存之类的)先不列了,对一个系统,初期能把下面做完也是一个...

    redis与memcached的区别_动力节点Java学院整理

    传统MySQL+ Memcached架构遇到的问题  实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,...

    数据库优化详解

    定时清除不需要的数据,定时进行碎片整理 二、具体优化方案 (一)数据库设计—三大范式、字段、表结构 1.根据数据库三范式来进行表结构的设计。设计表结构时,就需要考虑如何设计才能更有效的查询。 第一范式:...

Global site tag (gtag.js) - Google Analytics