假设我们有一个水果,即具有大量读取但也插入但几乎不更新或删除。
我们有2列存储具有少量选项的值。让我们说类别[香蕉,苹果,橙子或梨]和状态[已完成,正在进行,被破坏,被破坏或确定]。
最后,我们有一个列的姓氏所有者。
注:
我有时会按类别和其他状态搜索。
在所有情况下,姓氏将用于搜索
我将始终按类别/状态执行完全匹配,但以姓氏开头。
常见问题:
SELECT * FROM fruit_table WHERE category='BANANA' and last_name LIKE 'Cool%'
SELECT * FROM fruit_table WHERE status='Spoiled' and last_name LIKE 'Co%'
SELECT * FROM fruit_table WHERE category='BANANA' and last_name LIKE 'smith%'
我如何准备它以便我们的响应时间很短?
一个索引是否有帮助(考虑到列中的值根本没有分散)?是可以在这里帮助位图索引吗?
分区怎么样?
最后,关于标题的道歉,我不知道如何正确地制定它。
答案 0 :(得分:1)
过早优化通常是一种不好的做法。但是,添加索引是快速增加速度的方法,而不需要太多努力。有关Oracle中索引的更多信息,请阅读this question。