我们有一个服务器,用的是老的php(5.2.9)和mysql(5.0.67)。这是一个已经运行多年的网站。现在它卡住了。对于strace,我看到它在选择查询上卡住了从mysql运行命令
select * from table \G
字符串工作正常
select * from table;
型不停地跑啊跑啊直到我Ctrl+C为止。我知道这是一个古老的服务器和配置,但仍然很奇怪,不是吗?
igetnqfo1#
当使用;终止查询时,结果被格式化为一个表。它必须在打印任何内容之前读取所有结果,因为它必须找到每列的最大宽度,以便它们都对齐。如果查询返回大量数据,它将在开始打印任何内容之前挂起一段时间。\G使它垂直打印每一行,列在单独的行上。这允许它在数据库开始返回结果时立即开始打印。
;
\G
1条答案
按热度按时间igetnqfo1#
当使用
;
终止查询时,结果被格式化为一个表。它必须在打印任何内容之前读取所有结果,因为它必须找到每列的最大宽度,以便它们都对齐。如果查询返回大量数据,它将在开始打印任何内容之前挂起一段时间。\G
使它垂直打印每一行,列在单独的行上。这允许它在数据库开始返回结果时立即开始打印。