数据库索引
Posted gw977
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库索引相关的知识,希望对你有一定的参考价值。
什么是索引?
用于提高数据库访问速度的数据库对象
索引类型?
聚集索引:一个表中只有一个聚集索引,主键的存储位置与物理顺序相同,叶子节点获取全部列数据。
非聚集索引:索引逻辑顺序与物理顺序不同,可以有多个非聚集索引。=> 因此非聚集索引的叶子节点是索引节点,指针指向对应的数据块,若列中包含其他索引没有覆盖的列,就需要二次查找。=> 这种时候可以选用建立多列索引。
图:非聚集索引
索引的类型:
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. 检索主键
以上是关于数据库索引的主要内容,如果未能解决你的问题,请参考以下文章
数据库表索引:普通索引唯一性索引全文索引多列索引隐藏索引删除索引
数据库基础:讲解MySQL索引的概念及数据库索引的应用[2]
Pandas中xs()函数索引复合索引数据的不同切面数据(索引复合索引中需要的数据):索引列复合索引中的一个切面索引行复合索引中的一个切面