【问题标题】:Immediate Visualization of MySQL tasksMySQL 任务的即时可视化
【发布时间】:2013-05-27 01:59:36
【问题描述】:

我正在使用 PHP + MySQL。我每天通过 Insert 任务将 20 Megs 的 40000 个项目插入到一个数据仓库表中。 我需要在我的 PHP 脚本中看到即时的 sql 任务(类似于任务代码),但是所有的“回声”都是在 PHP 脚本结束后编写的。

不使用 AJAX 可以吗?

或者你能推荐我任何解决方案吗?

我需要展示类似的东西: INSERT INTO 表 VALUES (1,2,3);

【问题讨论】:

  • 分享您的代码。您需要更快的插入查询吗?
  • 您是否需要类似:dev.mysql.com/doc/refman/5.1/en/show-processlist.html 来显示所有活动查询任务
  • 不,我不需要更快的插入查询。我需要显示当前的 SQL 任务。整个脚本大约需要 2 分钟(并且已经优化)并且运行良好。
  • 如果您想使用 show full process list sql 查询,您可以使用定期刷新的 iframe 绕过 ajax
  • 我只需要显示当前任务,例如:INSERT INTO table VALUES (1,2,3);

标签: php mysql verbose


【解决方案1】:

您需要做的是在每次运行之前回显您的 $query。

但我猜你已经尝试过了,但没有看到它直接工作。

这可能是因为 php 或您的 Web 服务器正在缓冲输出,直到整个请求完成。

您可以执行以下操作来防止缓冲:

  • 在需要回显的回显后直接使用flush()
  • 不要使用 ob_start() 并打开隐式刷新,因为即使没有 ob_start php 也可能会隐式缓冲
  • 不要使用压缩。

你可以试着摆弄这些命令:

apache_setenv('no-gzip', 1);
ini_set('output_buffering', 0);
ini_set('zlib.output_compression', 0);
ini_set('implicit_flush', 1);

【讨论】:

  • 有趣的可能解决方案,我要尝试一下。谢谢。
  • 顺便问一下,您使用的是什么网络服务器?阿帕奇?如果是 IIS,还需要更改一些 IIS 设置。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-05
  • 1970-01-01
  • 2022-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多