В настоящее время у меня настроена таблица, в которой таблица «Info» подключается к таблицам «Event» и «Stage».
EVENT TABLE
id | categoryId | name
1 | 1 | Event1
2 | 2 | Event2
3 | 1 | Event3
[ ... About 100 rows ... ]
STAGE TABLE
id | categoryId |name
1 | 1 | Stage1
2 | 1 | Stage2
3 | 2 | Another Stage
[ ... About 200 rows ... ]
ИНФО ТАБЛИЦА
id | eventId | stageId | info
1 | 1 | 1 | Hello
2 | 1 | 2 | Something
3 | 1 | 1 | Else
4 | 2 | 3 | More
[ ... X00,000 rows ... ]
- Все мои запросы к информационной таблице будут содержать предложение WHERE как для eventId, так и stageId, тамникогда не будет случая, когда мне понадобится несколько eventIds и stageIds в одном запросе.
- Я не могу выполнить запрос только через stageId, так как они могут быть связаны с несколькими eventIds.
- Как и в моемВ приведенном выше примере события EventIds и stageIds не могут быть сгруппированы вместе.
Запросы MySQL не представляют собой ничего сложного, никаких объединений:
SELECT * FROM info WHERE eventId = 1 AND stageId = 1
В этом случае я не был уверен, какнужно ли в таблице «Инфо» индексировать столбцы eventId
и stageId
по отдельности или вместе в виде мультииндекса.Информация там часто заканчивается тем, что «это зависит от ваших настроек».
Ускоряется ли чтение по мультииндексу?Есть накладные расходы, которые могут не оправдать это?Должен ли я придерживаться нормального индекса на обоих?