17站长网

17站长网 首页 数据库 SQLite教程 查看内容

在SQLite中使用索引优化查询速度

2023-3-21 15:31| 查看: 2176 |来源: 互联网

在进行多个表联合查询的时候,使用索引可以显著的提高速度,刚才用SQLite做了一下测试。建立三个表:create table t1(id integer primary key,num integer not n ...

在进行多个表联合查询的时候,使用索引可以显著的提高速度,刚才用SQLite做了一下测试。

建立三个表:

create table t1

(id integer primary key,

num integer not null,

word1 text not null,

word2 text not null);

create table t2

(id integer primary key,

num integer not null,

word1 text not null,

word2 text not null);

create table t3

(id integer primary key,

num integer not null,

word1 text not null,

word2 text not null);

建立若干索引:

t1表:在num,word1,word2上有复合索引

t2表:在num,word1,word2上各有一个索引

t3表:在word1上有一个索引

create index idxT1 on t1(num,word1,word2);

create index idxT2Num on t2(num);

create index idxT2Word1 on t2(word1);

create index idxT2Word2 on t2(word2);

create index idxT3Word1 on t2(word1);

向三个表中各插入10000行数据,其中num项为随机数字,word1和word2中是英文单词,三个表中对应的num,word1和word2列中都包含有部分相同值,但是它们在表中出现的顺序不同。

速度测试结果:

1) select count(*) from t1,t3 where t1.word2=t3.word2;

很慢(t3.word2上没有索引)

2) select count(*) from t3,t1 where t1.word2=t3.word2;

很慢(t1.word2上没有独立索引)

3) select count(*) from t1,t2 where t1.word2=t2.word2;

很快(t2.word2上有索引)

4) select count(*) from t2,t1 where t1.word2=t2.word2;

很慢(t1.word2上没有独立索引)

5) select count(*) from t1,t2 where t1.num=t2.num;

很快(t2.num上有索引)

6) select count(*) from t2,t1 where t1.num=t2.num;

很快(t1的复合索引中,第一个列是num)

7) select count(*) from t1,t3 where t1.num=t3.num;

很慢(t3.num上没有索引)

8) select count(*) from t3,t1 where t1.num=t3.num;

很快(t1的复合索引中,第一个列是num)

结 论:在from子句后面的两个表中,如果第2个表中要查询的列里面带有索引,这个查询的速度就快,反之就慢。比如第三个查询,from后面的第2个表是 t2,t2在word2上有索引,所以这个查询就快,当输入SQL命令并回车后,查询结果就立即显示出来了,但是如果使用第4个查询命令(即把t1和t2 的位置互换),查询起来却用了1分零6秒。

可见索引的建立对于提高数据库查询的速度是非常重要的。

本文最后更新于 2023-3-21 15:31,某些文章具有时效性,若有错误或已失效,请在网站留言或联系站长:17tui@17tui.com
·END·
站长网微信号:w17tui,关注站长、创业、关注互联网人 - 互联网创业者营销服务中心

免责声明:本站部分文章和图片均来自用户投稿和网络收集,旨在传播知识,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系我们及时修正或删除。谢谢!

17站长网微信二维码

始终以前瞻性的眼光聚焦站长、创业、互联网等领域,为您提供最新最全的互联网资讯,帮助站长转型升级,为互联网创业者提供更加优质的创业信息和品牌营销服务,与站长一起进步!让互联网创业者不再孤独!

扫一扫,关注站长网微信

大家都在看

热门排行

最近更新

返回顶部