本文对show index from tablename;语法进行分析。

如:show index from `order`

1、Table   表名

2、Non_unique  如果索引不能包括重复值则为0,如果可以则为1。也就是平时所说的

唯一索引。

3、Key_name  索引名称,如果名字相同则表明是同一个索引,而并不是重复,比如上图中的第二、三条数据,索引名称都是index_fID_lastTime,其实是一个

联合索引。

4、Seq_in_index 索引中的

列序列号,从1开始。上图中的二、三条数据,Seq_in_index一个是1一个是2,就是表明在联合索引中的顺序,我们就能推断出联合索引中索引的

前后顺序。

5、Column_name 索引的列名。

6、Collation  列以什么方式存储在索引中,大概意思就是字符序。在MySQLSHOW INDEX语法中,有值’A’(升序)或NULL(无分类)。默认的类型是

utf8_general_ci,这样的大小写不敏感,比如下面两个sql会出现相同的查询结果:

select * from Table where content = 'Yes'

select * from Table where content = 'yes'

这样可能不符合你的要求,你需要大小写敏感的情况,你可以修改字段字符集类型,如下sql

alter table bbs_posts modify column content varchar(5000) NOT NULL collate

utf8_bin;

这样修改以后就OK了。

7、Cardinality  基数的意思,表示索引中

唯一值的数目的

估计值。基数根据被存储为整数的统计数据来计数,所以即使对于小型表,该值也没有必要是精确的。基数越大,当进行联合时,MySQL使用该索引的机会就越大。我们知道某个字段的重复值越少越适合建索引,所以我们一般都是根据Cardinality来判断索引是否具有高选择性,如果这个值非常小,那就需要重新评估这个字段是否适合建立索引。因为MySQL数据库中有各种不同的存储引擎,而每种存储引擎对于B+树索引的实现又各不相同。所以对Cardinality统计时放在存储引擎层进行的,至于它是如何统计更新的在这里就不再做更深入的介绍了。

8、Sub_part

前置索引的意思,如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为NULL。如上图所示,除了index_content那行显示4外,其他的都是NULL,表明index_content是一个长度为4的前置索引。对于BLOB,TEXT,或者很长的VARCHAR类型的列,必须使用前缀索引,因为MySQL不允许索引这些列的完整长度,这会让索引变得大且慢。选择长度的诀窍在于要选择足够长的前缀以保证较高的选择性,同时又不能太长以便节约空间。下面是计算前置索引长度的一般方法:

select count(distinct left(content,3))/count(*) from bbs_posts as sel3

select count(distinct left(content,4))/count(*) from bbs_posts as sel4

select count(distinct left(content,5))/count(*) from bbs_posts as sel5

最后算出来那个长度的基数接近完整列的选择行就OK了,完整列 select count(distinct content)/count(*) from bbs_posts

9、Packed  指示关键字如何被压缩。如果没有被压缩,则为NULL。压缩一般包括压缩传输协议、压缩列解决方案和压缩表解决方案。

10、Null 如果列含有NULL,则含有YES。比如上图中的lastOperateTime其中就包含null,我们知道建立索引的列是不允许为Null的,单列索引不存Null值,复合索引不存全为Null的值,如果列允许为Null,可能会得到“

不符合预期”的结果集。我这里是为了更好的给大家展示故意构造了一些数据。

11、Index_type

索引类型,Mysql目前主要有以下几种索引类型:FULLTEXT,HASH,BTREE,RTREE。

1). FULLTEXT

即为全文索引,目前只有MyISAM引擎支持。其可以在CREATE TABLE ,ALTER TABLE ,CREATE INDEX 使用,不过目前只有 CHAR、VARCHAR ,TEXT 列上可以创建全文索引。全文索引并不是和MyISAM一起诞生的,它的出现是为了解决WHERE name LIKE “%word%"这类针对文本的模糊查询效率较低的问题。

2). HASH

由于HASH的唯一(几乎100%的唯一)及类似键值对的形式,很适合作为索引。    HASH索引可以一次定位,不需要像树形索引那样逐层查找,因此具有极高的效率。但是,这种高效是有条件的,即只在“=”和“in”条件下高效,对于范围查询、排序及组合索引仍然效率不高。

3). BTREE    BTREE索引就是一种将索引值按一定的算法,存入一个树形的数据结构中(二叉树),每次查询都是从树的入口root开始,依次遍历node,获取leaf。这是MySQL里默认和最常用的索引类型。

4). RTREE

RTREE在MySQL很少使用,仅支持geometry数据类型,支持该类型的存储引擎只有MyISAM、BDb、InnoDb、NDb、Archive几种。相对于BTREE,RTREE的优势在于范围查找。

12、 Comment Index_comment  注释的意思。

show index mysql_MySQL SHOW INDEX 语法解析相关推荐

  1. show index mysql_MySQL SHOW INDEX语法的实际应用

    以下的文章主要描述的是MySQL SHOW INDEX语法的实际操作用法以及其实际查看索引状态(语法)的具体内容的描述,如果你对这一技术,心存好奇的话,以下的文章将会揭开它的神秘面纱. SHOW IN ...

  2. index mysql_mysql 原理~ index的详解

    一 简介:今天咱们来介绍下index的一些东西 二 数据的基本存储结构 1 磁盘空间被划分为许多大小相同的块(Block) 在内存中读出是页(Page). 2 一个表的这些数据块以链表的方式串联在一起 ...

  3. JavaScript的语法解析与抽象语法树

    抽象语法树(Abstract Syntax Tree)也称为AST语法树,指的是源代码语法所对应的树状结构.也就是说,对于一种具体编程语言下的源代码,通过构建语法树的形式将源代码中的语句映射到树中的每 ...

  4. 转JavaScript的语法解析与抽象语法树

    JavaScript的语法解析与抽象语法树 Jul 10, 2015 抽象语法树(Abstract Syntax Tree)也称为AST语法树,指的是源代码语法所对应的树状结构.也就是说,对于一种具体 ...

  5. pg/og内核原理-词法语法解析(更新中)

    目录 概念与含义 流程概览 词法语法代码 parsenode.h kwlist.h scan.l gram.y bison的使用 查看状态机 解决规约冲突 plpgsql的词法与语法 概念与含义 一条 ...

  6. Solr语法解析及SolrJ使用

    Solr语法解析及SolrJ使用 标签(空格分隔): Solr 官方指南:http://lucene.apache.org/solr/quickstart.html Solrj 之HttpSolrCl ...

  7. [免费专栏] Android安全之APK应用程序分析「附带Smali基础语法解析」

    也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 Android安全付费专栏长期更新,本篇最新内容请前往: [ ...

  8. pandas自定义设置dataframe每个索引的标签、自定义设置索引的列名称(customize index name and index label)

    pandas自定义设置dataframe每个索引的标签.自定义设置索引的列名称(customize index name and index label) 目录

  9. 用 C 语言开发一门编程语言 — 语法解析器

    目录 文章目录 目录 前文列表 编程语言的本质 词法分析 语法分析 使用 MPC 解析器组合库 安装 快速入门 实现波兰表达式的语法解析 波兰表达式 正则表达式 代码实现 前文列表 <用 C 语 ...

最新文章

  1. Python 把较长的一行代码分成多行的技巧
  2. LeetCode 102. Binary Tree Level Order Traversal
  3. java删除指定索引元素_将对象/元素添加到列表中的Java指定索引处
  4. Kafka集群部署搭建完美标准版
  5. inputstreamreader未关闭会导致oom_ThreadLocal 一定会导致内存泄露?
  6. 「报表开发者必看」避开这6个误区,报表才能好看又实用
  7. java file的用法_Java 关于File使用
  8. mysql5.5.9_centos下mysql5.5.9编译安装
  9. c语言迭代埃特金加速算法,5-埃特金加速迭代算法
  10. 笔记:WPS关于设置页眉页脚的问题
  11. 简析FUP LB5CM/LB6CM 落地式低速大容量冷冻离心机
  12. 机器学习入门实战——决策树算法实战Titanic数据集
  13. linux连接小米随身wifi密码忘记了,小米路由器无线密码(wifi密码)忘记了怎么办?...
  14. 港科夜闻|2022年香港科大气候适应及复原力大会圆满闭幕,政经领袖研讨香港气候政策与绿色金融发展...
  15. centos抓包使用
  16. java地图点线面_点线面类型互转
  17. 输入netsh winsock reset 重启电脑生效
  18. 《漂浮城堡历险记》的云端之旅
  19. iOS WidgetUI开发遇到的问题点
  20. 系统设计原则及技术指标

热门文章

  1. R语言四格表的统计分析及假设检验
  2. pandas读写结构化数据(read_csv,read_table, read_excel, read_html, read_sql)
  3. 固态硬盘上安装centos_固态硬盘使用f2fs作为根分区安装linux
  4. mysql 非正常关闭_mysql非正常关机,无法启动解决方案(转)
  5. 【效率工具】Linux服务器终端MobaXterm
  6. css 文字过长 省略号,css实现文字过长显示省略号的方法
  7. linux lvm使用情况,Linux LVM系列(一)lvm使用
  8. linux-进程的替换exec函数族
  9. 四十二、文件的物理结构(下)
  10. 【建站系列教程】4、还不知道SEO你就OUT了