MYSQL 学习之路 (一)

本文解析了MySQL中展示表状态的SQL语句及其返回的字段含义,包括表的存储引擎、行格式、数据和索引大小等。同时,讨论了SQL语句优化技巧,涉及索引使用、复合索引的合理建立以及查询效率提升的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本篇内容参考书籍:《高性能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;

需注意,某些大量重复字段不适合建立索引,但是某字段内假设有三种结果,百万级数据情况下,一种结果量级接近百万,其余两种结果合计几万时,针对该两种结果建立索引可以大幅提升针对该字段的这两种结果的查询效率。实操中需合理选择。

另注:复合索引在某些情况下,特别是查询需要某两种或几种条件经常性组合查询时,效果很好,非经常性查询,且表数据变更较为频繁的情况下,不建议建立复合索引,

慢慢补充慢慢写。。。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值