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

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`关键字用于分析查询执行计划,...

    MYSQL入门学习 及常用的控制语句

    例如,`GRANT`和`REVOKE`用于用户权限的授予和回收,`mysqldump`用于数据库备份,`OPTIMIZE TABLE`用于优化表的存储结构。 总的来说,MySQL的入门学习涉及安装、启动服务、使用命令行工具以及基本的SQL语法。随着对...

    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进行诊断。 ...

Global site tag (gtag.js) - Google Analytics