码迷,mamicode.com
首页 > 数据库 > 详细

数据库索引

时间:2019-04-14 09:34:30      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:访问   单列   外键   创建索引   索引类型   相同   inno   使用   完整   

什么是索引?

用于提高数据库访问速度的数据库对象

索引类型?

聚集索引:一个表中只有一个聚集索引,主键的存储位置与物理顺序相同,叶子节点获取全部列数据。

非聚集索引:索引逻辑顺序与物理顺序不同,可以有多个非聚集索引。=> 因此非聚集索引的叶子节点是索引节点,指针指向对应的数据块,若列中包含其他索引没有覆盖的列,就需要二次查找。=> 这种时候可以选用建立多列索引。

图:非聚集索引

技术图片

索引的类型:

a)      普通索引

b)      唯一索引:唯一,允许空值

c)      主键索引:唯一,不允许空值

d)      组合索引:多个字段上创建索引,查询条件中需使用创建的字段要符合最左前缀

e)      全文索引fulltext:搜索引擎,用来查找文本中的关键字。非结构化数据中的一部分信息重新提取、组织。

什么时候建立索引?

在经常需要搜索的列上、主键、连接的列、且是唯一性字段的列等上创建索引

能添加多少索引?

 

聚集索引:1个

非聚集索引:多个,SQL SERVER 254。

MYSQL创建索引的命令

普通索引 INDEX()  单列索引 INDEX [name]()

唯一索引 UNIQUE INDEX [name]()

多列索引 INDEX [name](col1, col2…)

全文索引 FULLTEXT INDEX

MYISAM支持空间索引SPATIAL INDEX

MYISAM VS INNODB

MYISAM 表级锁,索引和文件分离,缺乏事务支持

INNODB 行级锁,索引和文件一体,支持事务与外键

两个引擎各自的索引实现

MYISAM:叶子节点存放地址。

技术图片

INNODB:叶子节点保存完整的数据。必须要有主键(不同点)。辅助索引存储的是主键值,因此辅助索引需要检索两次 => 1. 获取主键 2. 检索主键

技术图片

 

数据库索引

标签:访问   单列   外键   创建索引   索引类型   相同   inno   使用   完整   

原文地址:https://www.cnblogs.com/GW977/p/10703900.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!