SQLite應用之路 SQL查詢優化

2021-06-12 12:43:48 字數 1175 閱讀 7917

temp1: 2499條資料

temp6: 969596條資料

//注意時間單位ms和s

//其中temp1和temp2已經給eid加上索引

//外表大於子表的時候,使用in

//外表小於字表的時候,使用exists

select * from temp1 where eid in (select eid from temp6)

select * from temp1 where exists (select eid from temp6 where eid = temp1.eid)

select * from temp6 where eid in (select eid from temp1)

select * from temp6 where exists (select eid from temp1 where eid = temp6.eid)

//offset 越大,執行時間越長。

select * from temp6 limit 900000,100

select * from temp6 limit 1,100

//下面兩句並沒有網上說的效果

select * from temp6 where eid >= (select eid from temp6 order by eid limit 800000,1) limit 100

select * from temp6 limit 800000,100

//在不考慮重複資料的時候,union all 比union效率高。

//union all 兩張表的時候,應該將大表放在左邊

select * from temp6 union select * from temp1

select * from temp1 union select * from temp6

select * from temp6 union all select * from temp1

select * from temp1 union all select * from temp6

//join兩張表的時候,應該把小表放在左邊

select * from temp1 a join temp6 b on a.eid = b.eid

select * from temp6 a join temp1 b on a.eid = b.eid

SQL應用之查詢根節點

mssql提供了cte遞迴取資料的方法,但是沒有直接提供乙個給定任意節點查詢其根節點的方法 也是ms sql 2008之後的版本有我不知道 此外,如果資料庫提供的資料出現死循時,如果沒有相應的檢測機制,必然導致資料庫伺服器資源耗盡。因此查詢根節點的sql片斷 或儲存過程 也是相當有用的。declar...

oracle應用之sql小寫

本人不喜歡在sql裡面大小寫混合在一起,每次看到別人的sql,總是要轉換為小寫,如以下sql with t as select date 2014 05 06 time1,1 type,100 times from dual union all select date 2014 05 06 2,20...

SQL 遞迴查詢範例應用

前段時間因為單位oa的替換,需要做一些上下級的遞迴查詢,一直沒找到辦法。網上找了下資料,心中大概有個數了。先建立2個表 create table dept deptno int primary key,dname varchar 20 loc varchar 20 sjdeptno int inse...