mysql查看索引

mysql查看索引

ID:38245869

大小:232.25 KB

页数:16页

时间:2019-06-07

mysql查看索引_第1页
mysql查看索引_第2页
mysql查看索引_第3页
mysql查看索引_第4页
mysql查看索引_第5页
资源描述:

《mysql查看索引》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、mysql查看索引mysql>showindexfromtblname;mysql>showkeysfromtblname;·Table表的名称。·Non_unique如果索引不能包括重复词,则为0。如果可以,则为1。·Key_name索引的名称。·Seq_in_index索引中的列序列号,从1开始。·Column_name列名称。·Collation列以什么方式存储在索引中。在MySQL中,有值‘A’(升序)或NULL(无分类)。·Cardinality索引中唯一值的数目的估计值。通过运行ANALYZETABLE或myisamchk-a可以更新

2、。基数根据被存储为整数的统计数据来计数,所以即使对于小型表,该值也没有必要是精确的。基数越大,当进行联合时,MySQL使用该索引的机会就越大。·Sub_part如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为NULL。·Packed指示关键字如何被压缩。如果没有被压缩,则为NULL。·Null如果列含有NULL,则含有YES。如果没有,则该列含有NO。·Index_type用过的索引方法(BTREE,FULLTEXT,HASH,RTREE)。·Comment 这是以读为主的线上库root@read 02:28:07

3、>showstatuslike‘Handler_read%’;  +———————–+——-+  

4、Variable_name        

5、Value

6、  +———————–+——-+  

7、Handler_read_first   

8、0    

9、  

10、Handler_read_key     

11、0    

12、  

13、Handler_read_next    

14、0    

15、  

16、Handler_read_prev    

17、0    

18、  

19、Handler_read_rnd     

20、0    

21、  

22、Handler_read_rnd_next

23、61

24、   

25、  +———————–+——-+  6rowsinset(0.41sec)Handler_read_first代表读取索引头的次数,如果这个值很高,说明全索引扫描很多。Handler_read_key代表一个索引被使用的次数,如果我们新增加一个索引,可以查看Handler_read_key是否有增加,如果有增加,说明sql用到索引。Handler_read_next代表读取索引的下列,一般发生rangescan。Handler_read_prev代表读取索引的上列,一般发生在ORDERBY…DESC。Handler_read_rnd代表在

26、固定位置读取行,如果这个值很高,说明对大量结果集进行了排序、进行了全表扫描、关联查询没有用到合适的KEY。Handler_read_rnd_next代表进行了很多表扫描,查询性能低下。写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录。如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取10^4个页面,如果这10^4个页面在磁盘上随机分布,需要进行10^4次I/O,假设磁盘每次I/O时间

27、为10ms(忽略数据传输时间),则总共需要100s(但实际上要好很多很多)。如果对之建立B-Tree索引,则只需要进行log100(10^6)=3次页面读取,最坏情况下耗时30ms。这就是索引带来的效果,很多时候,当你的应用程序进行SQL查询速度很慢时,应该想想是否可以建索引。进入正题:第二章、索引与优化1、选择索引的数据类型MySQL支持很多数据类型,选择合适的数据类型存储数据对性能有很大的影响。通常来说,可以遵循以下一些指导原则:(1)越小的数据类型通常更好:越小的数据类型通常在磁盘、内存和CPU缓存中都需要更少的空间,处理起来更快。(2)简

28、单的数据类型更好:整型数据比起字符,处理开销更小,因为字符串的比较更复杂。在MySQL中,应该用内置的日期和时间数据类型,而不是用字符串来存储时间;以及用整型数据类型存储IP地址。(3)尽量避免NULL:应该指定列为NOTNULL,除非你想存储NULL。在MySQL中,含有空值的列很难进行查询优化,因为它们使得索引、索引的统计信息以及比较运算更加复杂。你应该用0、一个特殊的值或者一个空串代替空值。1.1、选择标识符选择合适的标识符是非常重要的。选择时不仅应该考虑存储类型,而且应该考虑MySQL是怎样进行运算和比较的。一旦选定数据类型,应该保证所有

29、相关的表都使用相同的数据类型。(1)   整型:通常是作为标识符的最好选择,因为可以更快的处理,而且可以设置为AUTO_INCREMEN

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。