[SQL ] intersect 兩個查詢同一張表的結果s

作者: liu2007 (è–¯)   2019-09-24 23:54:50
資料庫名稱:Sqlite
資料庫版本:我是在DB Browser Version 3.11.2中下指令的
內容/問題描述:
我學sqlite不久,如有低級錯誤還請包涵 m(_._)m
我有一個用來存一對多關係的table,大約有700萬筆資料
gid cid
1, 2
1, 4
1, 14
2, 2
2, 15
.
.
.
今天我想查詢同時擁有譬如 cid = 2 以及 cid = 5 的gid
我的想法是
SELECT gid FROM relation WHERE tid=2
INTERSECT
SELECT gid FROM relation WHERE tid=5
結果跑了13秒才跑出結果
這對使用者的查詢來說不是一個令人滿意的速度
更何況最終我要查的cid數量可不只兩個 (intersect 3個要花20秒)
請問我該怎麼做才可以提升我的速度?
更新:
剛剛用java 的jdbc對同樣的table實作一模一樣的querry,
發現只花了2.6秒
不知道為什麼= =.....

Links booklink

Contact Us: admin [ a t ] ucptt.com