rails fast_page:测试分页方法的区别

首先创建了一个nft表,创建8个列,每个列的类型是text,内容为:a*1000, 创建100万条数据。

(之前创建的1000w条测试数据被删除了。只能创建临时的数据了。最初的内容:a*10000, 但是进程卡住了,就减少了一个0)

在Gemfile增加gem: fast_page, pagy,  kaminari

增加路由,增加controller的方法:

class NftsController < ApplicationController
  include Pagy::Backend
  before_action :set_nfts_page

  def query_by_ar
    nfts = NFT 
    total_count = NFT.count
    @nfts = nfts.order(id: :asc).page(@page).per(@page_size)
    render json: {
      nfts: @nfts,
      total_count: total_count
    }   
  end 

  def query_by_pagy
    nfts = NFT 
    total_count = NFT.count
    @pagy, @nfts = pagy(nfts.order(id: :asc), items: @page_size)
    render json: {
      nfts: @nfts,
      page: @pagy.page,
      page_size: @pagy.items,
      total_count: total_count
    } 
  end 

  def query_by_fast_page
    nfts = NFT 
    total_count = NFT.count
    @nfts = nfts.order(id: :asc).page(@page).per(@page_size).fast_page
    render json: {
      nfts: @nfts,
      page: @page,
      page_size: @page_size,
      total_count: total_count
    } 
  end 

  private
  def set_nfts_page
    @page = params[:page]
    @page_size = params[:page_size]
  end 
方法/次数12345平均值单位: 毫秒
query_by_ar467463440462457457.8
query_by_pagy481462473467471470.8
query_by_fasta_page1129595918796
每条数据6.1k.
方法/次数12345平均值单位: kb每页10条数据。
query_by_ar61.2361.2361.2361.2361.2361.23
query_by_pagy61.2661.2661.2661.2661.2661.26
query_by_fasta_page61.2661.2661.2661.2661.2661.26
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值