【发布时间】:2012-02-25 15:36:15
【问题描述】:
我目前有两个名为“名称”和“帐户”的表。我需要选择启用帐户的所有名称。所以我可以选择两种方式之一,但我想知道哪种方式更快、最有效?
第一种方法是选择所有已启用的帐户,然后在单独的查询中使用带有这些帐户的 where 子句(伪代码):
SELECT account_id FROM accounts WHERE enabled=1;
然后
SELECT * FROM names WHERE account_id IN (account_id_list);
或者我可以在表格上做一个简单的连接:
SELECT * FROM names JOIN accounts USING account_id WHERE enabled=1;
名称表将有大约 10-25k 行,并且还将在使用 SQLite 的移动设备 (Android) 上运行。
谢谢!
【问题讨论】:
-
使用命令
EXPLAIN QUERY PLAN并找出:sqlite.org/eqp.html -
没想到...这可能是最好的答案!
标签: android sql sqlite optimization