[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