简单回顾一下Mysql的历史,Mysql 是一个关系型数据库管理系统,由瑞典 Mysql AB 公司开发,目前属于 Oracle 公司。关系型数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
索引是在MYSQL的存储引擎层中实现的,而不是在服务层实现的。所以每种存储引擎的索引都不一定完全相同,也不是所有的存储引擎都支持所有的索引类型。MYSQL目前提供了一下4种索引。
基本的索引类型,大多数情况下都可以使用。
表示唯一的,不允许重复的索引,如果该字段信息保证不会重复,例如身份证号用作索引时,可设置为unique。Unique和Primary Key为列或列集合提供了唯一性的保证,Primary Key是拥有自动定义的Unique约束,但是每个表中可以有多个Unique约束,但是只能有一个Primary Key约束。
全文索引可以在varchar、char、text类型的列上创建。MyISAM支持全文索引,InnoDB在mysql5.6之后支持了全文索引。FULLTEXT 用于搜索很长一篇文章的时候,效果最好。用在比较短的文本,如果就一两行字的,普通的 INDEX 也可以。
空间索引是对空间数据类型的字段建立的索引,MYSQL中的空间数据类型有4种,分别是GEOMETRY(几何)、POINT(点)、LINESTRING(线)、POLYGON(多边形)。MYSQL使用SPATIAL关键字进行扩展,使得能够用于创建正规索引类型的语法创建空间索引。创建空间索引的列,必须将其声明为NOT NULL,空间索引只能在存储引擎为MYISAM的表中创建。
本文先介绍了索引相关的概念,后续会针对索引的实际应用和大家一起继续交流。