索引

索引

1、什么是索引

MySQL官方对索引的定义为:索引Index是帮助MySQL高效获取数据的数据结构。
索引的本质:索引是数据结构。
数据库查询是数据库的最主要功能之一,希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询算法的角度进行优化。

5种索引类型:普通索引、唯一索引、主键索引、组合索引和全文索引。

普通索引和唯一索引是根据索引的功能来划分

普通索引:
MySQL中的基本索引类型,允许在定义索引的列中插入重复值和空值。

唯一索引的索引列的值必须唯一,但允许空值。如果是组合索引,则列的值得纸盒必须唯一。主键索引是一种特殊的唯一索引,不允许有空值,一般在建表的时候同时建立主键索引

2、单列索引和组合索引:
单列索引和组合索引的划分是根据创建索引时所引用的列的数量来划分

单列索引
一个索引只包含单个列,一个表可以有多个单列索引。

组合索引
指在表的多个字段组合上创建索引,但只有在查询条件中使用了这些字段的左边字段时,索引才会被使用。

ALTER TABLE table ADD INDEX name_city_age (name,city,age);

组合索引:
可以起到多个索引的作用,但是使用时并不是随便哪个字段都可以使用索引的,而是遵从“最左前缀”:利用索引中最左边的列集列匹配行,这样的列集称为最左前缀。例如由id、name、age这3个字段字段构成的索引,索引行中按id/name/age的顺序存放,索引可以搜索下面字段组合:(id, name , age)、(id , name)、(id)。如果不构成索引的最左边的前缀,MySQL不能使用局部索引,如(age)、(name, age)都不能使用索引进行查询。

2、全文索引:
全文索引类型为FULLTEXT,在定义索引的列上至此值需得全文查找,允许在这些索引列上插入空值和重复值,可能存在精度问题。

只有字段的数据类型为 char、varchar、text 及其系列才可以建全文索引
在具体的应用中,一般不会使用数据库管理系统的全文索引。

3、空间索引 :
空间索引可以用作地理数据存储,通过R树来实现。空间索引会从所有维度来索引数据,使得空间搜索变得高效。查询时可以有效地使用任意维度来组合查询。必须使用MySQL的GIS相关函数来维护数据。
space geometry not null,
spatial index index6_sp(space)
创建了一个名为index6_sp的空间索引

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值