【问题标题】:PHP/MYSQL Delayed update queryPHP/MYSQL 延迟更新查询
【发布时间】:2013-03-11 16:49:00
【问题描述】:

我正在使用 codeigniter 开发新闻门户,它在我的第一个托管服务提供商上运行良好,但在我搬到新的托管服务提供商后,我开始遇到这个更新查询问题。

我正在使用类似于以下功能的文章阅读计数器,在我的新主机中,它延迟了 10 秒以上,因此如果关闭时间超过一个阅读器,计数器就会出现问题。

这不是 mysql 问题,因为我已经使用直接查询 mysql 对其进行了测试,一切似乎都很好。

有人知道我为什么会这样吗?

$a=mysql_query("update tbarticle set a_views=a_views+1 where a_id='25405'");
$result = mysql_query("SELECT a_views FROM tbarticle where a_id='25405'") or die(mysql_error());  

$row = mysql_fetch_array( $result );
echo $row['a_views'];

【问题讨论】:

  • 延迟到底是什么时候发生的?如果是上面代码运行的时候,必须是mysql的问题
  • 我假设在请求文章页面时会执行此代码?
  • 如果你使用 CodeIgniter,你应该使用数据库类而不是简单的 PHP MySQL 函数。
  • 当您切换托管服务器时,您是否也移动了 MySQL 数据库,如果是,您是否更新了连接字符串?
  • 起初我以为是配置问题,但后来我尝试使用上面的脚本模拟条件,使用简单的 php,我仍然遇到问题... tanyamath.com/apus.php 刷新几次,然后等待10多秒,然后再次刷新它上面简单的php mysql脚本

标签: php mysql codeigniter


【解决方案1】:

如果加载原帖中cmets引用的页面:

http://tanyamath.com/apus.php

你看到一个计数。如果您刷新浏览器(反复按 F5),计数器在 10 到 20 秒内不会改变或刷新。

当你连接到 MySQL 时,如果你使用 mysql_connect() 而不是 mysql_pconnect(),你可能会遇到一个繁忙的服务器试图打开一个连接。您之前可能没有看到此问题,因为该服务器不像您的新主机服务器那么繁忙。

尝试使用mysql_pconnect() 看看是否有帮助。

【讨论】:

  • 我的 codeigniter 使用 pconnect,但它有同样的问题。我还使用 SHOW FULL PROCESSLIST 监控 mysql,我确定它与资源无关
  • 这是一个奇怪的问题...我想知道表在更新期间是否被锁定,您使用的是哪个存储引擎?
  • 我使用 myisam... 使用 SHOW FULL PROCESSLIST 我确定没有表被锁定
  • 在GitHub上发布代码会不会太麻烦?请务必遗漏任何用户名/密码。
  • 我想我上面的脚本很清楚,在 mysql_connect 和 mysql_select_db 之前的两行我确定它与我的代码无关,我之前在 4 个不同的环境中使用过它......这个新主机使用了我以前从未使用过的 litespeed,但我不确定是不是问题
猜你喜欢
  • 2012-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-03
  • 1970-01-01
  • 2019-12-13
  • 2013-05-21
相关资源
最近更新 更多