(三.2)数据库索索引理论
①没有建立索引
②使用平衡二叉树结构(请看推荐资料)索引的情况下访问数据:
一、索引的优点
- 加快数据的检索速度,这也是创建索引的最主要的原因
- 加快表与表之间的连接
- 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序时间
- 通过创建唯一性索引,可以保证数据库中每一行数据的唯一性
二、什么情况下设置了索引但无法使用?
例子参考:https://blog.csdn.net/oheizhishi123/article/details/79525867
- 以“%(表示任意0个或多个字符)”开头的LIKE语句,模糊匹配;
- OR语句前后没有同时使用索引(这也是为什么少写or的原因)
- 数据类型出现隐式转化(如varchar不加单引号的话可能会自动转换为int型);
- 如果mysql估计使用全表扫描要比使用索引快,则不使用索引
三、什么样的字段适合创建索引?
- 经常作查询选择的字段
- 经常作表连接的字段
- 经常出现在order by, group by, distinct 后面的字段
四、索引的缺点
- 时间方面:创建索引和维护索引要耗费时间,具体地,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度;
- 空间方面:索引需要占物理空间。
五、索引的分类
根据数据库的功能,可以在数据库设计器中创建索引:唯一索引、主键索引和聚集索引。 尽管唯一索引有助于定位信息,但为获得最佳性能结果,建议改用主键或唯一约束。
唯一索引: UNIQUE 例如:create unique index stusno on student(sno);
表明此索引的每一个索引值只对应唯一的数据记录,对于单列惟一性索引,这保证单列不包含重复的值。对于多列惟一性索引,保证多个值的组合不重复。
主键索引: primary key
数据库表经常有一列或列组合,其值唯一标识表中的每一行。该列称为表的主键。 在数据库关系图中为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。该索引要求主键中的每个值都唯一。当在查询中使用主键索引时,它还允许对数据的快速访问。
复合索引 :
全文索引:就是在一堆文字中,通过其中的某个关键字等,就能找到该字段所属的记录行
外键索引:它可以提高查询效率,外键会自动和对应的其他表的主键关联外键的主要作用是保证记录的一致性和完整性