Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么MyModel.offset(n).find(20)在使用MySQL的Rails3中速度如此之慢?_Mysql_Ruby On Rails_Activerecord - Fatal编程技术网

为什么MyModel.offset(n).find(20)在使用MySQL的Rails3中速度如此之慢?

为什么MyModel.offset(n).find(20)在使用MySQL的Rails3中速度如此之慢?,mysql,ruby-on-rails,activerecord,Mysql,Ruby On Rails,Activerecord,我正在使用Rails3和MySQL 在某些情况下,我希望从模型表中提取第一个记录块,如下所示: MyModel.offset(10).first(50) 如果我在rails控制台中运行它,rails和MySQL就会停止运行 如果我在控制台中运行此操作时查看日志文件,我会得到以下结果 SELECT `my_models`.* FROM `my_models` LIMIT 18446744073709551615 OFFSET 10 而不是 SELECT * from my_models LIM

我正在使用Rails3和MySQL

在某些情况下,我希望从模型表中提取第一个记录块,如下所示:

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中确认了这一点。从我所能告诉你的,你不应该把一个数字传给第一个,所以当你这样做的时候,行为可能是未定义的,但我要说的是,它所做的是一种不好的未定义的行为

您要做的是MyModel.offset(10)、limit(50)。ActiveRecord::Base#first仅在希望执行“LIMIT 1”查询时使用


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

绝对是个奇怪的虫子。我已经在Rails 3.0.10和3.1.0中确认了这一点。从我所能告诉你的,你不应该把一个数字传给第一个,所以当你这样做的时候,行为可能是未定义的,但我要说的是,它所做的是一种不好的未定义的行为

您要做的是MyModel.offset(10)、limit(50)。ActiveRecord::Base#first仅在希望执行“LIMIT 1”查询时使用


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

你为什么不试试
MyModel.skip(10).limit(50)
你为什么不试试
MyModel.skip(10).limit(50)