Должен ли я индексировать полиморфную ассоциацию ActiveRecord?

У меня есть метрическая таблица, которая, как я ожидаю, будет очень большой. Он имеет полиморфную ассоциацию, так что он может принадлежать другим моделям, которые хотят записать некоторую метрику. Я обычно индексирую столбцы ассоциации, как это, чтобы ускорить загрузку ассоциации.Я слышал, как люди говорили о совместной индексации этой ассоциации, Это выглядит так:

add_index :comments, [:commentable_type, :commentable_id]

Но я также слышал совет против создания показателей низкого кардинальностипотому что отдача индекса не компенсирует издержки на его поддержание. Поскольку половина _type моей полиморфной ассоциации, вероятно, будет иметь только 4-5 значений в миллионах строк, я склонен индексировать только часть _id полиморфной ассоциации. Я, вероятно, создам несколько дополнительных совместных индексов, используя столбец _id и некоторые другие не упомянутые целочисленные столбцы и столбцы даты и времени, но я также не буду включать _type в эти индексы.

Это то, что вы будете делать / рекомендовать?

Ответы на вопрос(1)

Ваш ответ на вопрос