влияние индекса в запросе SQL - PullRequest
2 голосов
/ 12 октября 2010

Предположим, в таблице есть два индекса

  1. index1 на col1, col2
  2. index2 на col3

Скажите, пожалуйста, ли нижепоможет регистр индекса?

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

* примечание,

  1. я написал предложение where только без указания условий.Упоминаются только используемые столбцы
  2. Я использую DB2.Так что, согласно моей колонке знаний, последовательность не имеет значения.
  3. col4 не имеет никакого индекса.

Ответы [ 2 ]

2 голосов
/ 12 октября 2010
  • where col1,col4 - можно использовать префикс col1 из индекса 1.
  • where col3,col4 - можно использовать индекс 2.
  • where col1,col3 - можно использовать либо index2, либо префикс col1 из индекса 1.
  • where col1,col2,col3,col4 - можно использовать любой индекс
0 голосов
/ 12 октября 2010

Столбцы, упомянутые в предложении where, если они проиндексированы, то эти индексы будут использоваться. Например: - в вашем "Где col1, col4", col1 индексируется и, следовательно, будет использоваться. Аналогично для других условий. Для столбцов, для которых доступны оба индекса, могут использоваться оба. Например: - в ваших 3 и 4, где пункты.

...