В таблице с идентификатором, несколькими значениями ключа и несколькими другими столбцами данных:
T1: id, k1, k2, k3, data1, data2, ...
идентификатор уникален.
Есть несколько сотен различных значений для k1.
Для каждого отдельного значения k1 есть несколько тысяч различных значений для k2.
Для каждой отдельной комбинации k1, k2 есть несколько десятков (или чуть больше) строк, где обычно k3 - пустая строка для всех этих записей, а для некоторых других значений k3 она будет отображаться только один раз для (k1, k2) и иногда он появляется два или три раза.
Я хочу получить набор записей where k1=K1V and K2=K2V and K3=K3V
,
но я также знаю, что это эквивалентно запросу о where k1=K1V and K3=K3V
или where k2=K2V and K3=K3V
, потому что любое указанное значение для K2 всегда будет иметь одинаковое значение K1.
или, может быть, я должен спросить о where K3=K3V and K2=K2V and K1=K1V
или where K3=K3V and K1=K1V
или where K3=K3V and K2=K2V
? (из-за раскаяния пустого строкового значения в столбце K3).
Каков наилучший способ сделать этот запрос? и какой индекс мне создать для этого?
изменится ли ответ, если известно, что разница в количестве различных значений для K2 и различных значений для K1 велика? (т. е. у некоторых K1V есть 5 K2V, связанных с ними, в то время как у других есть тысячи)