Так что у меня есть MySQL таблица для фотографий на моем сайте.Каждая фотография привязана к одному из двух наборов объектов, поэтому имеет две колонки;nEntity1FK, nEntity2FK.
Ровно один из этих столбцов всегда ненулевой в каждой строке.Таким образом, около 50% строк имеют значение «0» в nEntity1FK, и около 50% имеют значение «0» в nEntity2FK.
Пока все хорошоПока я не добавлю предложение WHERE nEntity1FK=0
.Вещи внезапно становятся довольно медленными, даже если у меня есть LIMIT 0,50
, чтобы пойти с этим.
Я понимаю, почему.Я понимаю, что показатели низкого кардинальности плохие и обычно не привыкают.Какая альтернатива, хотя?Единственное, о чем я могу думать, - это хранить всю информацию о моих фотографиях в 2 отдельных таблицах вместо одной (и иметь представление, которое объединяет их вместе для запросов, которые нуждаются в обеих).Это кажется мне беспорядочным / хлопотным, есть ли лучший вариант?
Спасибо всем.