影响

2010-10-12 67 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子句中。