2013-03-01 3 views
0

У меня есть таблица продуктов со следующими полями: код - строка, идентификатор - целоеРубин на рельсы, пути, чтобы ускорить поиск в базе данных

Моя таблица имеет более чем 5 миллионов строк.

В модели я использую код:

find(:all, :conditions => ['code = ?', "#{search}"]) 

Это занимает 2 секунды, чтобы найти результат.
Есть ли способ сократить время поиска?

Я использую рельсы 3.2.11, Ruby 1.9.3 и sqlite3 в дб

UPD
Измененный код модели

+1

Какой у вас двигатель БД? На mySQL у вас есть поиск FULLTEXT в полях TEXT. – pierallard

+2

Возможно, это может помочь: http://stackoverflow.com/questions/2042269/how-to-speed-up-select-like-queries-in-mysql-on-multiple-columns –

+0

Изменен мой код модели - я делаю не нужна FTS. – BoredT

ответ

0

мне удалось найти ответ. Просто добавил

add_index :products, :code 

к изменению миграции и теперь он работает очень быстро. Дополнительная информация here