2013-03-11 45 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