MYSQL的各个索引类型有啥区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL的各个索引类型有啥区别?相关的知识,希望对你有一定的参考价值。

参考技术A PRIMARY, INDEX, UNIQUE 这3种是一类
PRIMARY 主键。 就是 唯一 且 不能为空。
INDEX 索引,普通的
UNIQUE 唯一索引。 不允许有重复。
FULLTEXT 是全文索引,用于在一篇文章中,检索文本信息的。

举个例子来说,比如你在为某商场做一个会员卡的系统。
这个系统有一个会员表
有下列字段:
会员编号 INT
会员姓名 VARCHAR(10)
会员身份证号码 VARCHAR(18)
会员电话 VARCHAR(10)
会员住址 VARCHAR(50)
会员备注信息 TEXT

那么这个 会员编号,作为主键,使用 PRIMARY
会员姓名 如果要建索引的话,那么就是普通的 INDEX
会员身份证号码 如果要建索引的话,那么可以选择 UNIQUE (唯一的,不允许重复)
会员备注信息 , 如果需要建索引的话,可以选择 FULLTEXT,全文搜索。

不过 FULLTEXT 用于搜索很长一篇文章的时候,效果最好。
用在比较短的文本,如果就一两行字的,普通的 INDEX 也可以。
参考技术B 聚集索引:也称 Clustered Index。是指关系表记录的物理顺序与索引的逻辑顺序相同。由于一张表只能按照一种物理顺序存放,一张表最多也只能存在一个聚集索引。与非聚集索引相比,聚集索引有着更快的检索速度。
MySQL 里只有 INNODB 表支持聚集索引,INNODB 表数据本身就是聚集索引,也就是常说 IOT,索引组织表。非叶子节点按照主键顺序存放,叶子节点存放主键以及对应的行记录。所以对 INNODB 表进行全表顺序扫描会非常快。
非聚集索引:也叫 Secondary Index。指的是非叶子节点按照索引的键值顺序存放,叶子节点存放索引键值以及对应的主键键值。MySQL 里除了 INNODB 表主键外,其他的都是二级索引。MYISAM,memory 等引擎的表索引都是非聚集索引。简单点说,就是索引与行数据分开存储。一张表可以有多个二级索引。

Visual Studio 2015 各个版本有啥区别

VS2015有三个版本,社区版、专业版、企业版,社区版是免费的,功能和专业版差不多,企业版应该是多了一些企业上经常应用到的功能,比如更专业的团队开发等等,我只用过专业版,如果你想免费试用的话可以试试社区版 参考技术A

请参看微软官网的介绍:

https://www.visualstudio.com/zh-cn/products/compare-visual-studio-2015-products-vs

本回答被提问者和网友采纳

以上是关于MYSQL的各个索引类型有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

mysql中,索引,主键,唯一索引,联合索引的区别是?对数据库的性能有啥影响?

MySQL BOOL 和 BOOLEAN 列数据类型有啥区别?

MySQL 中的 BLOB 和 TEXT 数据类型有啥区别?

MySQL 中的 VARCHAR(255) 和 TINYTEXT 字符串类型有啥区别?

MySQL中的float和decimal类型有啥区别

mysql中char和varchar有啥区别?