sqlite:在查询一对多数据库时避免全表扫描

时间:2015-11-02 08:58:25

标签: sqlite

假设我在数据库中有两个表:

user:
---------------
|  name | id  |
|-------|-----|
|  foo  |  1  |
|  bar  |  2  |
---------------

comments:
 ------------------
|  comment  |  id |
|-----------------|
| comment 1 |  1  |
| comment 2 |  1  |
| comment 3 |  1  |
| comment 4 |  1  |
| comment 5 |  1  |
| comment 1 |  2  |
 ------------------

Lets说我想提取foo发表的所有评论,以便我的查询

SELECT c.comment from comments c, user u WHERE u.name='foo' and c.id = u.id

上面的查询会对评论表进行全表扫描以获取用户foo发表的评论,还是有更好的查询来优化这一点并避免全表查找?我应该为这些表创建索引吗?

1 个答案:

答案 0 :(得分:0)

您必须在表注释中的comment / Id上添加索引,以便优化查询速度。

但这取决于数据量或未来时间的预期量。有时你永远不会需要一个永远不会增长的小表中的索引。 您可以考虑表格的使用和演变。

因此“我应该创造......”:这取决于!