索引有助于加快 SELECT 查询和 WHERE 子句,但它会减慢使用 UPDATE 和 INSERT 语句时的数据输入。索引可以创建或删除,但不会影响数据。
优点加快了数据库检索的速度,包括对单表查询、连表查询、分组查询、排序查询。经常是一到两个数量级的性能提升,且随着数据数量级增长。
缺点索引的创建和维护存在消耗,索引会占用物理空间,且随着数据量的增加而增加。
在对数据库进行增删改时需要维护索引,所以会对增删改的性能存在影响。
使用场景 当某字段数据更新频率较低,查询频率较高,经常有范围查询(>,<,=,>=,<=)或order by、group by发生时建议使用索引。并且选择度越大,建索引越有优势,这里选择度指一个字段中唯一值的数量/总的数量。 经常同时存取多列,且每列都含有重复值可考虑建立复合索引索引的创建和维护存在消耗,索引会占用物理空间,且随着数据量的增加而增加。
在对数据库进行增删改时需要维护索引,所以会对增删改的性能存在影响。
虽然索引的目的在于提高数据库的性能,但这里有几个情况需要避免使用索引。使用索引时,应重新考虑下列准则:
索引不应该使用在较小的表上。 索引不应该使用在有频繁的大批量的更新或插入 *** 作的表上。 索引不应该使用在含有大量的 NulL 值的列上。 索引不应该使用在频繁 *** 作的列上。 使用事务 特点原子性 *** 作,要么全部成功,要么全部失败;在执行大量数据的插入 *** 作时,避免频繁 *** 作cursor,可以大幅减少insert *** 作时间,一般为1-2个量级
查询必须字段查询时只取需要的字段和结果集,更多的结果集会消耗更多的时间及内存,更多的字段会导致更多的内存消耗。
更多参考资料 SQLite 索引 性能优化之数据库优化 总结以上是内存溢出为你收集整理的使用Sqlite时有哪些可以优化的地方全部内容,希望文章能够帮你解决使用Sqlite时有哪些可以优化的地方所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)