SQLite 索引 ( Index )

索引 索引类似于一本书的目录,使用索引可以大大提高 SQLite 数据的检索速度

打个比方,如果合理的设计且使用索引的 SQLite 是一辆高速公路的话,那么没有设计和使用索引的 MySQL 就是一个人力山村泥泞路

但是,过多的使用索引将会造成滥用

因为索引也有缺点:虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行 INSERT、UPDATE 和 DELETE 因为更新表时,SQLite 不仅要保存数据,还要保存一下索引文件

索引的分类

  1. 从字段数量上来看,索引可以分为 单列索引组合索引

    1. 单列索引是只由一个字段创建的索引
    2. 组合索引是由两个或这两个以上字段组成的索引

    是否要创建一个单列索引还是组合索引,要考虑到您在作为查询过滤条件的 WHERE 子句中使用非常频繁的列

    • 如果值使用到一个列,则选择使用单列索引

    • 如果在作为过滤的 WHERE 子句中有两个或多个列经常使用,则选择使用组合索引

  2. 从数据的唯一性上看,索引可以分为 普通索引唯一索引

    1. 如果一个字段上创建了普通索引,那么该字段的值是可以重复的

    2. 唯一索引就是字段的值不能有重复的两行出现

      使用唯一索引不仅是为了性能,同时也为了数据的完整性。唯一索引不允许任何重复的值插入到表中

      主键索引是一种特殊的唯一索引

什么情况下要避免使用索引?

合理使用索引会提高数据库的性能,减少 SQL 语句的执行时间

但不合理的使用,反而会拖累数据库

所以,给一个表创建索引时,要注意以下几点

  1. 索引不应该使用在较小的表上,数据不过万,创建了反而是累赘

  2. 如果某个表时常执行更新插入删除操作,那么这个表就不要建立太多索引

  3. 索引不应该使用在含有大量的 NULL 值的列上

  4. 索引不应该使用在频繁操作的列上

  5. 索引不要建立出现大量重复值的字段上,比如性别

SQLite 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.