首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 3数据库索引和其他优化

Rails 3数据库索引和其他优化
EN

Stack Overflow用户
提问于 2011-05-22 10:31:25
回答 1查看 9.6K关注 0票数 20

我已经开发了一段时间的rails应用程序,但不幸的是,我的应用程序中没有一个拥有大量的数据或流量。但现在我有一个正在增长的动力。因此,我首先潜入头部,扩展和优化我的应用程序。

似乎第一步也是最简单的一步就是使用数据库索引。我有一个很好的索引列表,应该涵盖我所有的查询,但是当我通过迁移将它们添加到数据库时,添加它们只需要几秒钟。出于某种原因,我认为它们必须遍历我的所有条目(其中有数千条)并对它们进行索引。

这是否意味着我的索引没有应用于我已经存在的数据?它们只会被添加到新的条目中吗?

此外,我还在研究其他扩展解决方案,比如memcached,以及简化我的查询等。

如果有人能告诉我一些优化我的rails 3应用程序的好资源,我会非常感激的!

谢谢!

编辑:

感谢所有关于数据库索引的伟大答案!在优化和扩展我的应用程序方面,我还应该考虑什么呢?梅卡奇?在优化方面,最佳的性能提升/努力比率是多少?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-22 13:43:27

在您的所有ID和数据中添加索引(您的“find_by”)总是一个好主意,在更多的场合,例如email_address。同样,您可以安全地假设ID永远不会变为负值,因此使ID列无签名将长期受益。与任何DBA (数据库管理员)交谈,他们会的,很多次告诉您这样做。

目前,您很可能在所有ID列中都有这样的内容.

代码语言:javascript
复制
t.integer :column_name, :null => false

或者..。

代码语言:javascript
复制
t.references :column_name, :null => false

只要把这个改成..。

代码语言:javascript
复制
t.column :column_name, 'integer unsigned', :null => false

你会看到一个微小的增长。

索引很简单..。

代码语言:javascript
复制
add_index :reviews, [:column_id, :column_type] # Polymorphic
add_index :reviews, :column_id # Standard

Rails API应该给你所有你需要知道的东西。

Peepcode有一个真正的get tutorial video,这对我来说是一个很好的洞察力,并且非常值得你花费12到37分钟的时间。有像MetaWhere这样的宝石,它们也可以帮助你。

最重要的是,在Rails 3和更高版本中,是ActiveRelations。这是只有在需要时才执行查询的地方。例如,关闭User.all,您可以调用User.scoped,并且当视图中的迭代发生时,执行中的SQL将被执行。强大的东西和铁路的未来。

告诉我们你是怎么相处的..。万事如意。

票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6087350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档