Следующее основано на моем опыте работы с PostgreSQL, но, вероятно, также применимо для MySQL и других.
Если вы планируете извлекать большое количество записей из этой таблицы или использовать нумерацию страниц, будет полезен индекс полей, используемых в ORDER BY
.
Вы должны создать индекс для всех полей заказа в том же порядке. Если вы смешиваете ASC
и DESC
в своем ORDER BY
, вам необходимо создать индекс с этими конкретными порядками, чтобы в полной мере использовать индекс.
Подходящая миграция ActiveRecord для вашей таблицы фотографий:
add_index :photos, [:created_at, :version]
Я бы порекомендовал просмотреть вывод EXPLAIN ANALYZE
с данными, подобными производственным, до и после добавления индекса, чтобы убедиться, что он дает желаемый эффект.