【发布时间】:2013-09-12 20:54:21
【问题描述】:
我有一张桌子。 specs[id,name,store_id,section_id,category_id,user_id,model_id]
我的查询很简单:
SELECT * FROM specs
WHERE
store_id=1
AND
section_id=1
AND
category_id=1
AND
user_id=1
AND
model_id=1
我收到的结果是规格列表。
如果我将查询更改为:
SELECT * FROM specs WHERE model_id=1
我会得到相同的结果,因为表格可以有重复项(当然,不包括 id)
数据样本(注意:
id | name | model_id | section_id |category_id | user_id
------------------------------------------------------------------
1 | me | 22 | 5 | 11 | 777
2 | you | 22 | 5 | 11 | 777
3 | me | 22 | 5 | 11 | 777
4 | me | 22 | 5 | 11 | 777
5 | you | 33 | 5 | 11 | 777
6 | they | 33 | 5 | 11 | 777
7 | them | 33 | 5 | 11 | 777
8 | we | 33 | 5 | 11 | 777
9 | we | 33 | 5 | 11 | 777
10 | them | 44 | 5 | 11 | 776
11 | they | 44 | 5 | 11 | 776
12 | me | 44 | 5 | 11 | 776
13 | you | 44 | 5 | 11 | 776
14 | they | 44 | 5 | 11 | 776
15 | them | 44 | 5 | 11 | 776
数据库是 MySQL。
问题:由于该表将包含 500k-1000k 条记录,使用第一个查询还是第二个查询会更快吗?更多的条件会让它更快吗?慢一点?
编辑
添加记录时,用户必须为所有列提供值。并且记录总是附加到 model_id。
所以提供什么其他条件并不重要,因为模型是关键。
【问题讨论】:
-
我不明白这个问题。为什么使用不同的
where子句会得到相同的结果? -
怎么会一样呢?结果集在常见情况下会有所不同(如果不是,那么您的所有记录都必须具有等于 1 的所有字段,除了
model_id字段 - 那为什么要存储它?)。还是我理解错了? -
在原帖@AlmaDoMundo 中澄清
-
澄清....@juergend
标签: mysql sql select optimization multiple-conditions