`
san_yun
  • 浏览: 2653767 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

mysql optimize table

 
阅读更多

参考:

http://blog.51yip.com/mysql/1222.html

mysql性能优化-慢查询分析、优化索引和配置: http://www.oicto.com/mysql-explain-show/

http://duyongguang.blogbus.com/logs/181612876.html

 

执行前

 

    message table status:

           Name: message_message
         Engine: InnoDB
        Version: 10
     Row_format: Compact
           Rows: 19373842
 Avg_row_length: 107
    Data_length: 2079326208
Max_data_length: 0
   Index_length: 9689251840
      Data_free: 7956594688
 Auto_increment: 27527286
    Create_time: 2012-04-17 09:30:48
    Update_time: NULL
     Check_time: NULL
      Collation: utf8_general_ci
       Checksum: NULL
 Create_options: 
        Comment: 
mysql> show index from message_message \G
*************************** 1. row ***************************
       Table: message_message
  Non_unique: 0
    Key_name: PRIMARY
Seq_in_index: 1
 Column_name: id
   Collation: A
 Cardinality: 19333139
    Sub_part: NULL
      Packed: NULL
        Null: 
  Index_type: BTREE
     Comment: 
*************************** 2. row ***************************
       Table: message_message
  Non_unique: 1
    Key_name: idx_parent
Seq_in_index: 1
 Column_name: parent_id
   Collation: A
 Cardinality: 230



    Sub_part: NULL
      Packed: NULL
        Null: YES
  Index_type: BTREE
     Comment: 

 

执行了24分钟:

mysql> optimize table message_message;
^L+-----------------------+----------+----------+-------------------------------------------------------------------+
| Table                 | Op       | Msg_type | Msg_text                                                          |
+-----------------------+----------+----------+-------------------------------------------------------------------+
| zcwdb.message_message | optimize | note     | Table does not support optimize, doing recreate + analyze instead |
| zcwdb.message_message | optimize | status   | OK                                                                |
+-----------------------+----------+----------+-------------------------------------------------------------------+
2 rows in set (24 min 16.26 sec)

 

执行后:

 

           Name: message_message
         Engine: InnoDB
        Version: 10
     Row_format: Compact
           Rows: 19034974
 Avg_row_length: 94
    Data_length: 1799356416
Max_data_length: 0
   Index_length: 6529433600



      Data_free: 11394875392
 Auto_increment: 27530331
    Create_time: 2012-05-09 21:38:41
    Update_time: NULL
     Check_time: NULL
      Collation: utf8_general_ci
       Checksum: NULL
 Create_options: 
        Comment
 

 

ysql> show index from message_message \G  
*************************** 1. row ***************************
       Table: message_message
  Non_unique: 0
    Key_name: PRIMARY
Seq_in_index: 1
 Column_name: id
   Collation: A
 Cardinality: 19064084



    Sub_part: NULL
      Packed: NULL
        Null: 
  Index_type: BTREE
     Comment: 
*************************** 2. row ***************************
       Table: message_message
  Non_unique: 1
    Key_name: idx_parent
Seq_in_index: 1
 Column_name: parent_id
   Collation: A
 Cardinality: 9532042



    Sub_part: NULL
      Packed: NULL
        Null: YES
  Index_type: BTREE
     Comment:

 

结果还是比较明显:索引文件大小表小,Cardinality命中率上升.

 

 

分享到:
评论

相关推荐

    探讨Mysql中OPTIMIZE TABLE的作用详解

    MySQL中的`OPTIMIZE TABLE`命令是一个非常实用的数据库维护工具,主要用于优化和整理数据库表,尤其是在大量数据操作之后。此命令的主要目标是提高查询性能、减少磁盘空间占用以及更新表统计信息。以下是对`OPTIMIZE...

    mysql下优化表和修复表命令使用说明(REPAIR TABLE和OPTIMIZE TABLE)

    本文将详细介绍两种常用的MySQL命令:`REPAIR TABLE` 和 `OPTIMIZE TABLE`,以及它们的使用场景和方法。 **一、REPAIR TABLE命令** `REPAIR TABLE` 是MySQL提供的一种用于修复损坏或异常的表的命令。当发现表无法...

    实现MySQL定时批量检查表repair和优化表optimize table的shell脚本

    为确保数据库的稳定性和高效运行,定期进行表的检查(check table)和优化(optimize table)是必要的。本篇文章将详细介绍如何使用shell脚本来实现这一功能。 首先,我们来看一下给出的shell脚本的主要部分: 1. ...

    Mysql InnoDB删除数据后释放磁盘空间的方法

    执行此命令后,可能会收到一个提示:“Table does not support optimize, doing recreate + analyze instead”,但这并不意味着优化失败,实际上,它已经成功地完成了空间的回收。 如果在创建数据库时没有设置`...

    mysql-table_insertsql.zip

    本资料"mysql-table_insertsql.zip"显然关注的是在MySQL中创建大表以及如何有效地插入数据,这在性能测试和数据加载场景中尤为关键。 首先,让我们深入理解“建表”这个概念。在MySQL中,创建表是通过SQL语句`...

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

    `OPTIMIZE TABLE` 是MySQL中一个常用的命令,用于对表进行优化,包括重组数据、更新统计信息和释放不再使用的空间。当执行这个命令时,MySQL会重新组织表的数据文件,删除碎片,使数据存储更紧凑。这在删除大量数据...

    实战mysql innodb 删除数据后释放磁盘

    InnoDB 删除数据后释放磁盘空间需要通过设置参数 innodb_file_per_table=1 和使用 OPTIMIZE TABLE 命令来实现。如果没有设置这个参数,那么需要将数据库导出,删除 InnoDB 数据库文件,然后再倒入。 此外,InnoDB ...

    mysql dba 常用脚本

    4. 表维护:包括表的优化(如`OPTIMIZE TABLE`)、重建索引(`ALTER TABLE ... REBUILD INDEX`)、检查和修复表(`CHECK TABLE`, `REPAIR TABLE`)等。 5. 查询性能分析:`EXPLAIN`关键字用于分析查询执行计划,...

    mysqlcheck.exe 修复mysql数据库

    mysqlcheck -u root -p --password=<your_password> --repair database_name table_name ``` 在实际操作中,务必谨慎使用`mysqlcheck.exe`,因为它可能会修改数据,所以在执行修复或优化之前,最好先备份重要的...

    mysql 清碎片

    - InnoDB存储引擎默认不会通过简单的`OPTIMIZE TABLE`命令来清理碎片,因为它使用的是行级锁定机制,这种方式更适合频繁的并发操作。 - 若要清理InnoDB表的碎片,推荐的做法是创建一个新的表结构,并将旧表的数据...

    MySQL实现批量检查表并进行repair与optimize的方法

    echo $(mysql -h$host_name -u$user_name -p$user_pwd $database -A -Bse "optimize table $table_name") fi done ``` 在上述脚本中,首先连接到MySQL服务器,然后获取指定数据库中的所有表名。接着,遍历每个表...

    MySQL for Database Administrators Student Guide - Volume I

    - 定期进行数据库检查(如使用CHECK TABLE)和优化(如使用OPTIMIZE TABLE)。 - 清理无用的数据,维护数据库空间的整洁。 7. 数据迁移和整合: - 执行数据迁移,包括跨平台或不同数据库系统之间的数据迁移。 -...

    mysql命令大全

    - `OPTIMIZE TABLE table_name;`:优化表`table_name`,用于回收未使用的空间,提高查询性能。 - **使用 PROCEDURE ANALYSE() 分析存储过程**: - `SELECT * FROM students PROCEDURE ANALYSE();`:分析存储过程...

    MYSQL

    7.6 DROP DATABASE (抛弃数据库)句法 7.7 CREATE TABLE (创建表)句法 7.7.1 隐含(silent)的列指定变化 7.8 ALTER TABLE (改变表)句法 7.9 OPTIMIZE TABLE (优化表) 句法 7.10 DROP TABLE ...

    mysql基础知识和mysql优化整理

    8. 数据库维护:定期进行表维护操作,如ANALYZE TABLE、OPTIMIZE TABLE等,保持数据库健康。 9. 软件升级:适时更新到最新稳定版本的MySQL,获取性能提升和新功能。 10. 性能监控:使用工具如MySQL Performance ...

    mysql优化笔记+资料

    1. 定期分析和优化表(ANALYZE TABLE和OPTIMIZE TABLE)以更新统计信息和物理结构。 2. 清理不再使用的旧数据,避免数据膨胀。 3. 监控数据库性能,使用工具如MySQL Performance Schema或Percona Toolkit进行诊断。 ...

    MySQL中文参考手册.chm

    7.9 OPTIMIZE TABLE (优化表) 句法 7.10 DROP TABLE (抛弃表)句法 7.11 DELETE (删除)句法 7.12 SELECT (精选)句法 7.13 JOIN (联接)句法 7.14 INSERT (插入)句法 7.15 REPLACE ...

Global site tag (gtag.js) - Google Analytics