首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用postgresql加速rails数据库查询

使用postgresql加速rails数据库查询
EN

Stack Overflow用户
提问于 2021-06-28 21:39:19
回答 1查看 47关注 0票数 0

我正在尝试加快Rails查询的速度,该查询耗费了我重新加载页面的大量时间。

我在rails视图中有以下内容:

代码语言:javascript
复制
<% if current_account.subscribed? and current_account.subscription.plan.id == 2 %>  
  <div class="flex items-center bg-blue-100 rounded-lg px-2 mb-2 shadow-lg data-controller="tooltip" data-tippy-content="Clases reservadas este mes" data-tippy-delay="0" data-tippy-arrow="true" data-tippy-size="regular" data-tippy-animation="fade">
    <div class="mr-2 flex-shrink-0 text-3xl md:text-2xl">
      ?
    </div>
    <div>
      <p class="text-3xl md:text-2xl font-bold">
        <%= @lessons_basic_count %>
      </p>
    </div>
  </div>

这是我在控制器上运行的查询:

代码语言:javascript
复制
@lessons_basic_count = @mylessons_lessons.where(datetime: Time.at((current_account.subscription.latest_payment.created if current_account.subscription.latest_payment).to_i)..(Date.current + 30.days)).size

这是一个查找表mylessons的查询,该表包含用户在其订阅的实际时间段内预订的课程。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-28 22:32:24

EXPLAIN输出中QUERY PLAN之后的信息才是最重要的。你能在你的问题中包括这一输出吗?

看起来您可能需要在您的mylessons表上为user_iddatetime设置一个双键。您可以将其添加到迁移中,如下所示:

代码语言:javascript
复制
add_index :mylessons, [:user_id, :datetime]

您还需要一个关于mylessons.lesson_id的索引。可以添加类似以下内容的内容:

代码语言:javascript
复制
add_index :mylessons, :lesson_id
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68164367

复制
相关文章

相似问题

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