Это относится к обычным полям m2m - не могу сказать наверняка для "сквозных" таблиц, так как у меня нет ни одного в моем текущем проекте, и у меня нет доступа к другим проектам ATM, но это все еще должно иметь место так как этот индекс необходим для ограничения UNIQUE.
FWIW вы можете легко проверить это самостоятельно, посмотрев определения таблиц в вашей базе данных (в MySQL / mariadb, используя show create table yourtablename
).
Как говорится, индекс дБ полезно только тогда, когда есть в основном разные значения, и может фактически ухудшить производительность (в зависимости от вашего поставщика баз данных и т. д. c), если это не так - например, если у вас есть поле с 3 или 4 возможными значениями (ie «пол» или что-то подобное), индексация может не дать ожидаемых результатов. Не должно быть проблемой для таблиц m2m, поскольку пара (table1_id, table2_id)
должна быть уникальной, но дело в том, что вы не должны верить, что простое добавление индексов автоматически повысит ваши показатели - настройка производительности базы данных SQL - это обмен и само по себе, и на самом деле многое зависит от того, как вы на самом деле используете свои данные.