【发布时间】:2015-03-25 08:57:45
【问题描述】:
我有一个表格,我在下面的两个未索引的列中搜索文本
select * from Items where items.item_label = 'Mac address' and items.item_value = '023424234324'
item_label 和 item_value 都没有一起索引。这里 item_label 是完全可选的,我添加它是为了让数据库可以更快地按标签找到项目(假设如果我缩小我正在寻找的内容会更好)
哪个查询更好,上一个还是下一个?
select * from Items where items.item_value = '023424234324'
【问题讨论】:
-
如果这些列中的任何一个都没有索引并且这些值的行数相同,那么两者很可能会执行相同的操作
-
如果没有任何相关索引来帮助它,数据库需要扫描整个表以查找匹配项,无论您的
WHERE子句中是否有一个或两个条件。如果表的大小很大,那么用于该表的 I/O 将淹没查询处理方面的所有其他考虑因素。如果两个查询返回的行数相同,则无需考虑其他相关方面。 -
@JohnBollinger 感谢您的回答。
-
@Lamak 感谢您的回答。
标签: sql performance oracle10g