本篇内容参考书籍:《高性能MySQL(第三版)》及工作总结
如: 展示表user的相关状态的mysql语句;
show table status like 'user' (PS:看到高性能MYSQL一书中SQL语句为:SHOW TABLE STATUS LIKE 'USER' \G ,自己试着不好使,有兴趣的可以自己试试)
解析字段:
MySQL Status 列名释义
列名 | 释义 |
Name | 表名 |
Engine | 表的存储引擎类型。旧版中,此列名称为:Type |
Row_Format | 行格式。对于MyISAM表,可选值为Dynamic(行长度可变,一般包含可变长度字段,如VARCHAR或BLOB),Fixed(定长,如CHAR或INteger)或Compressed(存在于压缩表中). |
Rows | 表行数,MyISAM表行数精确,InnoDB,行数估计值 |
Avg_Row_Length | 平均每行包含字节数 |
Data_Length | 表数据大小(字节为单位) |
Max_Data_Length | 表数据最大容量,该值和存储引擎有关。 |
Index_Length | 索引大小(字节为单位)(PS:需注意控制索引大小,斟酌索引字段) |
Data_Free | 对于MyISAM表 表示已分配但未被使用的空间,这部分空间包含之前删除的行,以及后续可以被INSERT利用的空间。 |
Auto_Increment | 下一个AUTO_INCREMENT的值(适用于自增索引) |
Create_Time | 创建表的时间 |
Update_Time | 更新表的时间 |
Check_Time | 使用CHECK TABLE命令,或者myisamchk工具最后一次检查表的时间。 |
Collation | 表默认人字符集及字符列排序规则(ci结尾的 默认不区分大小写,bin结尾的区分大小写) |
Checksum | 如果启用,保存整个表的实时校验和 |
Create_Options | 创建表时指定的其他选项 |
Comment | 包含其他的一些额外信息,如:MyISAM表,保存的时表创建时带的注释。InnoDB 保存的是表空间的剩余信息。如是视图,则该列包含‘VIEW'文本字样 |
| |
解析mysql的语句;当extra内包含有 using filestore时,说明该sql语句需要索引优化,其可能是缺省必要索引,也可能是索引未生效,解析MySQL语句格式为:
explain select * from user;
需注意,某些大量重复字段不适合建立索引,但是某字段内假设有三种结果,百万级数据情况下,一种结果量级接近百万,其余两种结果合计几万时,针对该两种结果建立索引可以大幅提升针对该字段的这两种结果的查询效率。实操中需合理选择。
另注:复合索引在某些情况下,特别是查询需要某两种或几种条件经常性组合查询时,效果很好,非经常性查询,且表数据变更较为频繁的情况下,不建议建立复合索引,
慢慢补充慢慢写。。。