2013-04-25 20 views
0

假設我們有一個水果,即具有大量讀取,但也插入儘管幾乎不更新或刪除。通過類別/狀態值的colums查找表中的數據

我們有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%' 




我如何準備,所以我們有低響應時間?
索引是否有幫助(考慮到列中的值完全不分散)?
可能位圖索引在這裏有幫助嗎?
分區怎麼樣?

最後,關於標題的道歉,我不知道如何正確制定它。

+1

在操作環境中通常應避免位圖索引 - 它們最適合於數據倉庫。 – 2013-04-25 13:47:21

回答

1
  • 位圖索引極大地幫助有限數量的項目 的可用選項。
  • 對於last_name列,標準b-tree索引(或非集羣在SQL Server中)將很好地工作 。
    我會先做這兩件事,因爲它們很容易,然後看看事情是如何工作的。

過早優化通常是一種不好的做法。但是,增加索引是快速增加速度的方法,而不需要太多努力。有關Oracle中索引的更多信息,請閱讀this question

相關問題