gpt4 book ai didi

mysql - 为什么 MyModel.offset(n).find(20) 在带有 MySQL 的 Rails 3 中这么慢?

转载 作者:行者123 更新时间:2023-11-29 00:53:47 26 4
gpt4 key购买 nike

我正在使用 Rails 3 和 MySQL

在某些情况下,我想像这样从我的模型表中提取第一 block 记录:

MyModel.offset(10).first(50)

如果我在 Rails 控制台中运行它,Rails 和 MySQL 就会停止运行。

如果我在控制台中运行它时查看日志文件,我会得到以下信息!!

SELECT `my_models`.* FROM `my_models` LIMIT 18446744073709551615 OFFSET 10

代替

SELECT * from my_models LIMIT 50 offset 10

LIMIT 语句似乎有问题。我配置不正确吗?

最佳答案

绝对是一个奇怪的错误。我已经在 Rails 3.0.10 和 3.1.0 中确认了这一点。据我所知,您不应该首先将数字传递给 first,因此您这样做时的行为可能是未定义的,但我会说它正在做的是一种不好的未定义。

你要做的是 MyModel.offset(10).limit(50)。 ActiveRecord::Base#first 只应在您希望完成“LIMIT 1”查询时使用。

我认为您的控制台已挂起,因为它试图实例化,然后检查并输出该表中几乎所有记录。

关于mysql - 为什么 MyModel.offset(n).find(20) 在带有 MySQL 的 Rails 3 中这么慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7135599/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com