两个分组选择方法使用mysql,哪个更快,哪个更好?

时间:2016-02-26 04:09:51

标签: mysql ruby-on-rails ruby

表中有40,000条记录,我想分成4组。 第一种方式:

  def prepare_params(div, mod)
    results = []
    Account.find_each do |account|
      next unless account.id % div == mod
      results << [account.id, account.name]
    end
    results
  end

secord方式:

  def prepare_params(block, block_size)
    results = Account.limit(block_size).offset(block_size * (block - 1)).pluck(:id, :name)
  end

这两个使用mysql的分组选择方法,哪个更快,哪个更好?

1 个答案:

答案 0 :(得分:0)

第二个会更快更好,因为它为数据库提供了模型作业。

首先,您手动执行数据库作业,不使用索引,并使用非专用算法。

当然,如果是1次任务,则没有太大的区别。发髻,如果是常规任务,你可以通过合成测试看到你眼睛的速度提升。

另外,我应该提一下,算法将提供不同的数据划分。第一个将分为1 2 3 4 1 2 3 4 1 2 3 4...,第二个将提供1 1 1 1 1 1 1 1....,其中数字是列,请记住它。

相关问题