影響

2010-10-12 1 views
2

假設有一個表影響

  1. 索引1在col1兩個指標,COL2
  2. 索引2上COL3

請告訴我,無論是在以下情況下,指數將幫幫我?

.. where col1,col4 
.. where col3,col4 
.. where col1,col3 
.. where col1,col2,col3,col4 

*注,

  1. 我寫僅子句而不指定的條件。僅提及使用的列
  2. 我正在使用DB2。所以根據我的知識專欄序列無關緊要。
  3. col4沒有任何索引。

回答

2
  • where col1,col4 - 可以從索引使用前綴col1 1.
  • where col3,col4 - 可以使用索引2
  • where col1,col3 - 可以從索引1
  • where col1,col2,col3,col4請使用索引2或前綴col1 - 可以使用任一索引
+0

這意味着,1.複合索引中的列可以獨立使用嗎? 2. where子句的所有coulns必須是索引或不能是索引。 – 2010-10-12 09:31:50

+0

@articlestack:只能使用*前綴*,不能使用任何列。 – 2010-10-12 09:47:16

0

列where子句中提到的,如果indexe d,那麼這些索引將被使用。例如: - 在「Where col1,col4」中,col1被索引,因此將被使用。對其他條件也是如此。對於兩個索引都可用的列,則可以使用它們。例如: - 在你的第3和第4條where子句中。