首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Rails应用程序进行数据库索引

使用Rails应用程序进行数据库索引
EN

Stack Overflow用户
提问于 2012-06-07 08:17:30
回答 3查看 74关注 0票数 0

我有表: Products,Sub_Categories和Categories。Categories拥有许多Sub_Categories、sub_categories belongs_to类别,并且有许多产品和产品属于Sub_Categories。我的products表有一个sub_category_id;我的sub_category表有一个category_id。索引这些表以增加应用程序加载时间的最有效方法是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-07 08:35:01

在没有更多信息的情况下,为了更好地访问查询,您可以对以下内容进行索引:

代码语言:javascript
运行
复制
categories on id
subcategories on id
subcategories on category_id
product on id
product on sub_category_id
票数 1
EN

Stack Overflow用户

发布于 2012-06-07 08:39:18

您也可以使用急切加载。例如,如果您需要一个类别和几个子类别,则使用

代码语言:javascript
运行
复制
Category.includes(:sub_categories).find(:id)

。参见http://guides.rubyonrails.org/active_record_querying.html#eager-loading-associations

票数 1
EN

Stack Overflow用户

发布于 2012-06-07 08:41:27

阿尼尔的答案是正确的,但正如他暗示的那样,你的问题太模糊了。我建议打开查询日志,看看哪些查询占用了页面加载的时间。然后获取有问题的查询,并在mysql提示符中输入EXPLAIN {query} (您可以使用rails dbconsole或Oracle提供的独立mysql客户端来访问)。查看瓶颈查询中使用的索引,并提出更具体的问题。

我猜您的很多查询都是按类别ID查询产品的。向products添加一个带索引的category_id列可能会通过避免连接来加快速度,但是您有责任保持该列是最新的。

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

https://stackoverflow.com/questions/10924088

复制
相关文章

相似问题

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