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.