Это всегда хорошая идея, чтобы добавить индексы ко всем вашим идентификаторам и данным, которые вы «находите» более чем в нескольких случаях, например, email_address.Точно так же можно смело предполагать, что идентификатор никогда не станет отрицательным, поэтому создание столбцов идентификаторов без подписи принесет пользу в долгосрочной перспективе.Поговорите с любым администратором базы данных (администратором базы данных), и он, скорее всего, скажет вам сделать это.
В настоящее время, скорее всего, у вас есть что-то подобное для всех ваших столбцов идентификаторов ...
t.integer :column_name, :null => false
или ...
t.references :column_name, :null => false
Просто изменив это значение на ...
t.column :column_name, 'integer unsigned', :null => false
Вы увидите небольшое увеличение.
Индексы просты...
add_index :reviews, [:column_id, :column_type] # Polymorphic
add_index :reviews, :column_id # Standard
API Rails должен дать вам все, что вам нужно знать.
В Peepcode действительно есть обучающее видео , которое былоотличное понимание для меня и стоит $ 12 и 37 минут вашего времени.Есть такие драгоценные камни, как MetaWhere , которые также могут вам помочь.
Наиболее важным в Rails 3 и выше является ActiveRelations.Здесь запросы выполняются только при необходимости.Например, вместо User.all вы можете вызвать User.scoped, и когда итерация в представлении происходит, SQL выполняется.Мощные вещи и будущее рельсов.
Дайте нам знать, как вы продвигаетесь ... Всего наилучшего.