SQLite应用之路---SQL查询优化
发布时间:2020-12-12 20:21:16 所属栏目:百科 来源:网络整理
导读:SQLite应用之路---SQL查询优化 temp1: 2499条数据 temp6: 969596条数据 //注意时间单位ms和s //其中temp1和temp2已经给eid加上索引 1.in和 exists //外表大于子表的时候,使用in //外表小于字表的时候,使用exists select * from temp1 where eid in (select
SQLite应用之路---SQL查询优化temp1: 2499条数据temp6: 969596条数据 //注意时间单位ms和s //其中temp1和temp2已经给eid加上索引 1.in和 exists//外表大于子表的时候,使用in//外表小于字表的时候,使用exists select * from temp1 where eid in (select eid from temp6)//1.92s select * from temp1 where exists (select eid from temp6 where eid = temp1.eid)//66.48ms select * from temp6 where eid in (select eid from temp1)//98.25ms select * from temp6 where exists (select eid from temp1 where eid = temp6.eid)//2.40s 2.limit//offset 越大,执行时间越长。select * from temp6 limit 900000,100//1.25s select * from temp6 limit 1,100//7.12ms //下面两句并没有网上说的效果 select * from temp6 where eid >= (select eid from temp6 order by eid limit 800000,1) limit 100//515.14ms select * from temp6 limit 800000,100//474.13ms 3.union 和 union all//在不考虑重复数据的时候,union all 比union效率高。//union all 两张表的时候,应该将大表放在左边 select * from temp6 union select * from temp1//187.17s select * from temp1 union select * from temp6//190.30s select * from temp6 union all select * from temp1//8.39s select * from temp1 union all select * from temp6//42.03s 4.join//join两张表的时候,应该把小表放在左边 select * from temp1 a join temp6 b on a.eid = b.eid//54.21ms select * from temp6 a join temp1 b on a.eid = b.eid//1.12s(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |