2013-03-11 46 views
2

我正在开发使用codeigniter的新闻门户网站,它在我的第一个托管服务提供商上运行良好,但在我搬到新的托管服务提供商后,我开始收到此更新查询问题。PHP/MYSQL延迟更新查询

我使用类似于以下功能的文章阅读计数器,在我的新托管中,它延迟了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']; 
+1

什么时候发生延迟?如果是上面的代码运行,它*有*是一个MySQL问题 – 2013-03-11 16:50:18

+0

我假设这个代码在请求文章页面时被执行? – 2013-03-11 16:54:22

+2

如果您使用的是CodeIgniter,则应该使用数据库类而不是简单的PHP MySQL函数。 – 2013-03-11 16:55:58

回答

0

如果您加载在原岗位的评论中引用的页面:

http://tanyamath.com/apus.php

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

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

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

+0

我的codeigniter使用pconnect,但它有同样的问题。 我也使用SHOW FULL PROCESSLIST监视mysql,并且我确定它与资源无关 – user2157692 2013-03-11 18:22:04

+0

这是一个好奇的人......我想知道在更新期间表是否锁定,您正在使用哪种存储引擎? – 2013-03-11 18:25:07

+0

我使用myisam ...使用SHOW完整进程列表我确定没有表格被锁定过 – user2157692 2013-03-11 18:33:13