У меня есть метрическая таблица, которую я ожидаю быть очень большой. Он имеет полиморфную ассоциацию, чтобы он мог принадлежать другим моделям, которые хотят записать некоторую метрику. Я обычно индексирую такие столбцы ассоциации, чтобы ускорить загрузку ассоциации. Я слышал, как люди говорили о совместном индексировании этой ассоциации. Это выглядит так:
add_index :comments, [:commentable_type, :commentable_id]
Но я также слышал совета против создания индексов низкой мощности, потому что выигрыш индекса не компенсировал накладные расходы поддерживая его. Так как половина моей полиморфной ассоциации, вероятно, будет иметь только 4-5 значений по миллионам строк, я склонен индексировать только часть _ip полиморфной ассоциации. Я, вероятно, создаю некоторые дополнительные совлокальные индексы, используя столбец _id и некоторые другие столбцы с нечетными целыми числами и столбцами datetime, но я также не буду включать _type в эти индексы.
Это то, что вы бы сделали/порекомендовали?