`

mysql 5.6中sql语句统计每个索引的具体情况

阅读更多

http://aadant.com/blog/2014/02/04/how-to-calculate-a-specific-innodb-index-size/
在 mysql中 ,使用
show table status like '表名'\G;可以看出具体表的情况,比如:
           Name: t
         Engine: InnoDB
        Version: 10
     Row_format: Compact
           Rows: 4186170
Avg_row_length: 34
    Data_length: 143310848
Max_data_length: 0
   Index_length: 146030592
      Data_free: 6291456
Auto_increment: NULL
    Create_time: 2014-02-04 15:40:54
    Update_time: NULL
     Check_time: NULL
      Collation: latin1_swedish_ci
       Checksum: NULL
Create_options:
        Comment:
1 row in set (0.00 sec)

  其中可以看出Data_length和Index_length,显示的是索引段的总的大小,那么一个表中如果有多个索引,要如何查看某个索引的大小,页呢?可以使用SQL语句完成,但要先分析下表,步骤如下:
 

CREATE TABLE `t` (
  `a` smallint(6) DEFAULT NULL,
  `b` smallint(6) DEFAULT NULL,
  `c` smallint(6) DEFAULT NULL,
  KEY `a` (`a`),
  KEY `b` (`b`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1


  
ANALYZE table t;
SELECT
       sum(stat_value) pages,
       index_name,
       sum(stat_value) * @@innodb_page_size size
FROM
       mysql.innodb_index_stats
WHERE
           table_name = 't'
       AND database_name = 'test'
       AND stat_description = 'Number of pages in the index'
GROUP BY
       index_name;

+-------+-----------------+-----------+
| pages | index_name      | size      |
+-------+-----------------+-----------+
|  8747 | GEN_CLUST_INDEX | 143310848 |
|  4456 | a               |  73007104 |
|  4457 | b               |  73023488 |
+-------+-----------------+-----------+
3 rows in set (0.00 sec)

  其中用到的是mysql 5.6中的  mysql.innodb_table_stats和mysql.innodb_index_stats表 ,里面有很多有用的统计信息
  要注意的是,上面的方法对于分区表也是同样适用的
1
1
分享到:
评论

相关推荐

    mysql5.6官方文档

    文档会详细介绍如何编写高效SQL语句,以及如何利用索引和EXPLAIN来分析和优化查询性能。 2. **存储引擎**: MySQL 5.6支持多种存储引擎,如InnoDB(默认引擎,支持事务处理)、MyISAM(高速读写但不支持事务)等。...

    Mysql5.6、Mysql5.7 JDBC驱动

    本文将深入探讨Mysql5.6和Mysql5.7的JDBC驱动,以及如何使用`mysql-connector-java-5.1.34.jar`这个驱动包进行数据库连接。 首先,JDBC驱动是Java程序连接MySQL数据库的关键,它允许Java应用程序通过执行SQL语句来...

    MySQL 5.6 for Windows 官方(mysql-5.6.34-winx64.zip)

    - **命令行工具**:MySQL 5.6提供了命令行客户端,用于执行SQL语句、管理用户、监控数据库状态等。 - **图形化界面**:可以配合MySQL Workbench等工具,进行更直观的数据库设计、管理和监控。 - **性能监控**:...

    mysql5.6全套教程讲义

    理解SQL语句的语法结构,以及如何在实际项目中编写高效的查询是至关重要的。 2. **数据库设计**:在开始使用MySQL之前,你需要了解如何进行数据库设计,如范式理论,用于减少数据冗余和提高数据一致性。此外,还要...

    mysql5.6版本,自己用的,可以用

    MySQL 5.6是MySQL数据库管理系统的一个重要版本,它在2013年发布,带来了许多性能提升和功能增强。这个版本特别适用于那些遇到与较新版本兼容性问题的用户,比如在尝试导入SQL文件时遇到数据库版本不匹配的问题。 ...

    mysql 5.6 for mac

    4. **SQL 性能分析**:引入了 Performance Schema,这是一个监控和诊断 MySQL 性能的工具,可以帮助管理员了解系统资源的使用情况,定位性能瓶颈。 5. **并行复制**:MySQL 5.6 支持多线程复制,使得从服务器可以...

    mysql5.6.zip

    在本压缩包“mysql5.6.zip”中,您将找到安装MySQL 5.6所需的所有文件。 **1. 安装过程** 安装MySQL 5.6通常包括以下步骤: - 解压“mysql5.6.zip”到一个适当的目录。 - 执行安装程序,如“setup.exe”或“mysql-...

    MySql.rar 安装包-5.6.48.0

    3. **SQL标准支持**:MySQL 5.6增加了对更多SQL标准的支持,例如窗口函数和 Common Table Expressions (CTE),这些特性使得开发者可以编写更复杂的查询语句,同时保持良好的可读性和可维护性。 4. **半同步复制**:...

    mysql 5.6手册

    MySQL 5.6手册是MySQL数据库管理系统在5.6版本的官方英文文档,它提供了全面、详尽的技术信息,帮助用户理解和操作这个重要的开源数据库系统。MySQL 5.6版本是一个重要的里程碑,引入了许多增强功能和性能改进,使得...

    mySQL5.6安装包

    在“MySQL5.6安装包”中,主要包含以下关键知识点: 1. **安装过程**:MySQL 5.6的安装通常包括下载安装包,运行安装程序,配置服务器选项,如端口号、数据存储位置以及默认的字符集。在Windows环境下,像“MySQL_...

    MySQL 5.6从零开始学

    MySQL 5.6是MySQL数据库管理系统的一个重要版本,它提供了许多增强的功能和性能优化,使得这个版本成为初学者和专业人士的热门选择。本教程“MySQL 5.6从零开始学”旨在帮助初学者理解数据库的基本概念,并通过实践...

    mysql 5.6 官方参考手册 最新 最全

    3. **触发器和存储过程**:MySQL 5.6支持创建自定义的数据库逻辑,如触发器(在特定事件发生时自动执行的代码)和存储过程(一组预编译的SQL语句)。这些可提高效率,减少网络通信,并实现更复杂的业务逻辑。 4. **...

    mysql5.6性能优化

    MySQL 5.6版本作为该系列中的一个重要版本,在很多方面都有显著改进,尤其是其在性能优化方面的努力,更是值得深入研究。 优化的本质在于合理安排资源和调整系统参数,使得MySQL能够更加高效地运行,并且尽可能地...

    Mysql-5.6 安装包

    - **查询优化**:避免全表扫描,使用EXPLAIN分析查询计划,优化SQL语句。 - **内存参数调整**:根据服务器资源调整缓存和缓冲池大小,提高性能。 7. **维护与更新**: - 定期检查错误日志,及时发现并解决问题。...

    mysql5.6社区版web

    在使用MySQL 5.6时,你需要了解一些基本的SQL语句,如`CREATE DATABASE`来创建数据库,`USE`切换数据库,`CREATE TABLE`定义表结构,`INSERT INTO`添加数据,`SELECT`查询数据,`UPDATE`更新数据,以及`DELETE FROM`...

    mysql 5.6 原版

    - **发行说明**:MySQL 5.6 Release Notes 包含了每个发布版本的具体变更和改进内容,对于跟踪新特性和修复的问题非常有用。 - **许可条款**:MySQL 5.6提供了两种主要的许可选项:Community Edition(社区版)和...

    mysql5.6性能优化总结

    * eq_ref:mysql 手册是这样说的:"对于每个来自于前面的表的行组合,从该表中读取一行。" * ref:查询条件索引既不是 UNIQUE 也不是 PRIMARY KEY 的情况 * ref_or_null:该联接类型如同 ref,但是添加了 MySQL 可以...

    mysql5.6手册

    MySQL 5.6是MySQL数据库管理系统的一个重要版本,它包含了丰富的功能更新和性能优化,旨在为开发者和数据库管理员提供更高效、可靠的数据管理体验。本手册详细介绍了MySQL 5.6的各种特性和使用方法,是学习和掌握该...

    MySQL 5.6从零开始学(视频教学版)的源代码

    MySQL 5.6是数据库管理系统中的一个重要版本,它在MySQL的演化过程中扮演了关键角色,引入了许多新特性、性能优化和稳定性改进。本资源提供的"MySQL 5.6从零开始学(视频教学版)的源代码"是针对初学者的一套完整...

    mysql5.5,5.6,5.7 完美支持驱动jar

    使用这个驱动jar,开发者可以轻松地执行SQL语句,处理结果集,以及进行事务控制等操作。例如,以下是一个简单的Java代码示例,演示如何使用JDBC连接MySQL: ```java import java.sql.Connection; import java.sql....

Global site tag (gtag.js) - Google Analytics