本文共 1595 字,大约阅读时间需要 5 分钟。
索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息
目的: (1)提高查询速度 (2)确保数据的唯一性 (3)可以加速表和表之间的连接,实现表和表之间的参照完整性 (4)使用分组和排序子句进行数据检索时,可以减少分组和排序的时间 (5)全文检索字段进行搜素优化一,主键索引(PRIMAY KEY)
主键: 某一个属性组能唯一标识一条记录 如:学生表(学号,姓名,班级,性别等等),学号时唯一标识的,可以作为主键 特点:三、常规/普通索引(INDEX)
作用: 快速定位特定数据 注意: index 和 key 关键字都可以设置常规索引 应加在查询条件的字段 不易添加太多常规索引,影响数据的插入,删除和修改操作 四、全文索引(FULLTEXT) 作用: 快速定位特定数据 注意: 只能用于MyISAM类型的数据表 只能用于CHAR ,VARCHAR,TEXT数据列类型 使用大型数据集 五、组合索引 是在表中的多个字段组合上创建的索引 六、覆盖索引 通过索引就可以得到想要的结果 七、空间索引缺点
(1)不能使用范围查询 (2)无法被用来避免数据的排序操作 (3)不能利用部分索引引键查询 (4)不能避免表扫描 (5)遇到大量Hash值相等的情况后性能大幅下降秘籍索引文件中的每个搜索码值都对应一个索引值
稀疏索引文件只为索引码的某些值建立索引项 mysam存储引擎,不管是主键索引,唯一键索引还是普通索引都是稀疏索引 innodb存储引擎:有且只有一个密集索引。密集索引的选取规则如下:单列索引:一个索引只包含单个列,但一个表中可以有多个单列索引,单列索引包括普通索引,唯一索引,主键索引
组合索引:是在表中的多个字段组合上创建的索引什么是索引?
索引其实是一种数据结构,能够帮助我们快速的检索数据库中的数据。 那么索引具体采用的哪种数据结构呢 常见的MySQL主要有两种结构:Hash索引和B+ Tree索引,我们使用的是InnoDB引擎,默认的是B+树 为什么采用B+ 树吗?这和Hash索引比较起来有什么优缺点吗? 因为Hash索引底层是哈希表,哈希表是一种以key-value存储数据的结构,所以多个数据在存储关系上是完全没有任何顺序关系的,所以,对于区间查询是无法直接通过索引查询的,就需要全表扫描。所以,哈希索引只适用于等值查询的场景。而B+ Tree是一种多路平衡查询树,所以他的节点是天然有序的(左子节点小于父节点、父节点小于右子节点),所以对于范围查询的时候不需要做全表扫描。转载地址:http://mgqen.baihongyu.com/