2013-03-01 37 views
0

搜索我有表產品具有以下字段: 碼 - 串, ID - 整數Ruby on Rails的,該如何加快數據庫

我的表有超過500萬行。

在模型中我使用代碼:

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

它需要2秒內找到的結果。
有什麼辦法可以縮短搜索時間嗎?

我使用的軌道3.2.11,紅寶石1.9.3和sqlite3的DB作爲

UPD
更改模型代碼

+1

什麼是你的數據庫引擎?在mySQL上,您可以在TEXT字段上進行FULLTEXT搜索。 – pierallard 2013-03-01 10:44:50

+2

也許這可以幫助: http://stackoverflow.com/questions/2042269/how-to-speed-up-select-like-queries-in-mysql-on-multiple-columns – 2013-03-01 10:45:51

+0

改變了我的模型代碼 - 我做的不需要FTS。 – BoredT 2013-03-01 13:20:34

回答

0

我已經成功地找到答案。 只需添加

add_index :products, :code 

遷移的變化和現在的作品真快。 你會發現更多的信息here