2013-03-01 38 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