优化索引提升查询效率

发布时间:2025-04-17 16:49

使用学术搜索引擎优化:提升论文被检索率 #生活技巧# #学习技巧# #学术研究方法#

要让创建的索引真正有效,是需要一个过程的,不是系统上线之前调一下就行了,而是需要在系统运行过程中,不断调整。

(1)考虑索引本身的特性

在前面的文章中,已经说了,索引的3个特性:有序、索引层数不高、索引包含字段值。

第一个特性是有序,可以用到sql中的 分组操作(group by),排序操作(order by),关联(join)上。

第二个特性是索引层数不高,说明当一个表的数据量越来越多的时候,索引层数可能就增加了1-2层,基本上不会影响查询速度,通过索引仍然可以快速查找、过滤数据。

第三个特性是索引包含字段值,说明索引可以起到覆盖查询的目的,也就是说虽然索引不一定起到过滤、快速查找的作用,但是可以直接扫描索引来取数,而非扫描全表,减少了IO操作,速度自然就快了。

(2)针对具体的sql语句,创建索引

注意索引的前缀原则,也就是起过滤作用的字段,尽量放到最左边。

举个具体的例子:

select ID,name,biz_date

from A

where ID = 1000 and name like 'xxx%'

那么可以创建索引:

create index dix_A on A(id,name)

(3)创建完索引后,要监控索引的使用情况

可以通过如下的代码,查询索引使用情况:

create table txt(id int primary key,v varchar(10))

create index idx_txt_v on txt (v)

insert into txt

values(1,'a'),

(2,'b'),

(3,'c')

select v

from txt

select

DB_NAME(d.database_id),

OBJECT_NAME(d.object_id),

i.name,

user_seeks,

user_scans,

user_lookups,

user_updates

from sys.dm_db_index_usage_stats d

inner join sys.indexes i

on d.object_id = i.object_id

and d.index_id = i.index_id

where database_id = DB_ID('test2')

insert into txt

values(4,'a'),

(5,'b'),

(6,'c')

如果只有user_updates,而没有user_seeks,那么说明创建索引后,只有开销,索引没有起作用。

这种索引,就应该删掉。

网址:优化索引提升查询效率 https://www.yuejiaxmz.com/news/view/871937

相关内容

提升查询效率:索引与SQL操作的策略
MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT *、分页查询的优化、合理使用连接、子查询的优化)(上)
MySQL索引原理及慢查询优化(转载)
常识通过网站优化策略,提高搜索引擎抓取效率,助力网站排名提升。
MySQL优化:12种提升SQL执行效率的有效方法
SQL查询优化技巧
MySQL慢查询优化
MySQL使用limit 1提高sql查询效率
提升数据更新速度:索引优化技巧
纳米AI搜索:颠覆传统搜索引擎,提升工作与生活效率

随便看看