【问题标题】:MySQL select query not working with limit, offset parametersMySQL 选择查询不适用于限制、偏移参数
【发布时间】:2010-11-17 12:07:09
【问题描述】:

我在我的 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 为增量递增。

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

我将此查询隔离到一个脚本中并运行它,得到了相同的结果。然后我尝试直接运行最后一个查询(偏移量 = 240000),它成功了!

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

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

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

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

任何帮助表示赞赏!

【问题讨论】:

  • 我的配置文件中的一些其他信息,myisam_max_sort_file_size=100G myisam_sort_buffer_size=68M key_buffer_size=55M read_buffer_size=64K read_rnd_buffer_size=256K sort_buffer_size=256K
  • 另一个有趣的观察,内存/cpu占用在代码到达这一点后没有改变(偏移量= 240000)

标签: python mysql


【解决方案1】:

你检查过myisamchk的表格吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-22
    • 2016-04-23
    • 2014-12-24
    • 2021-06-21
    • 1970-01-01
    • 2019-09-06
    • 2014-02-21
    • 2014-03-07
    相关资源
    最近更新 更多