MySQL选择查询不使用limit,offset参数

时间:2010-02-12 02:36:16

标签: python mysql

我在windows vista安装上运行MySQL 5.1。该表使用MyISAM,大约有1000万行。它用于存储用户在网站上发布的短信。

我正在尝试对其运行以下查询,

query = "select id, text from messages order by id limit %d offset %d" %(limit, offset)

其中limit设置为固定值(在本例中为20000),offset以20000为单位递增。

当offset = 240000时,此查询进入无限循环。此特定值而不是任何其他值。

我将此查询隔离到一个脚本中并运行它,并获得相同的结果。然后我尝试直接运行最后一个查询(使用offset = 240000),它工作正常!

然后我尝试直接在mysql客户端中执行相同的查询,以确保错误不在python数据库访问器模块中。所有查询都返回结果,但偏移量= 240000的结果除外。

然后我查看了mysql服务器日志并看到了以下内容。

[ERROR] C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld: Sort aborted

这可能意味着当我停止python进程(出于挫折)时,mysqld进程正在“排序”某些东西。当我查看my.ini文件时,我看到了很多MAX_ *选项。我目前正在尝试这些,但同时将它扔出去。

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

您是否使用myisamchk检查了表格?