【发布时间】:2010-02-21 23:03:31
【问题描述】:
我已经查看了很多关于这个问题的帖子(sqlite 中的子查询非常慢)。但是我对sql不是很擅长,我不知道我能做什么。
我有这个疑问:
SELECT * FROM data d WHERE d.category = 3 AND
(SELECT COUNT(id) FROM data_tag WHERE data = d.id AND (tag = 2136 OR tag = 8)) >= 2
ORDER BY id ASC
我有 3 张桌子 data,tag 和 data_tag (n-m 的数据和标签) 每个数据都有 n 个标签,在这个查询中,我按标签搜索数据(2 个标签,都必须在数据中)
我将我的数据库从 SQL Server 切换到 sqlite,除此查询外,一切正常。 在 SQL Server 中,这个执行时间不到 1 秒,在 sqlite 中大约需要 1 分钟。 请给我一些建议。
【问题讨论】:
-
SQLite 中
data_tag的索引是什么?