目前即時通訊使用UPDATE pages SET hits = hits+1 WHERE id=:id
遞增頁面PDO命中,但在剖析劇本平均其採取30ms的&爲65μs之間進行更新。mySQL - 增加頁面瀏覽量的更快方法?
是否有增加一個更快的方法,hits
也是表內的INDEX: 下面是一個例子轉儲:
[queries] => Array
(
[0] => Array
(
[sql] => SELECT * FROM `settings`
[time] => 0.22602081298828
)
[1] => Array
(
[sql] => SELECT * FROM `menu_links` WHERE `active`="1" ORDER BY position ASC
[time] => 0.2291202545166
)
[2] => Array
(
[sql] => SELECT * FROM `pages` WHERE `url`=:field AND active='1'
[time] => 0.27203559875488
)
[3] => Array
(
[sql] => SELECT * FROM `pages` WHERE `menu_link`=:field AND active='1'
[time] => 0.24008750915527
)
[4] => Array
(
[sql] => UPDATE pages SET hits = hits+1 WHERE id=:id
[time] => 31.989107131958
)
)
UPDATE
看來,使用LIMIT 1個子句加速了10-15ms
[4] => Array
(
[sql] => UPDATE `pages` SET hits = hits+1 WHERE id=1 LIMIT 1
[time] => Between 15 & 25ms
)
with LOW_PRIORITY
[4] => Array
(
[sql] => UPDATE LOW_PRIORITY `pages` SET hits = hits+1 WHERE id=1 LIMIT 1
[time] => Between 17 & 30ms
)
頁表有多少行。 id索引?一般來說,與讀取相比,更新速度要慢幾個數量級。 – 2012-04-23 22:37:22
目前只有一行,是它的索引 – 2012-04-23 22:38:10
我不確定你可以做更多。 http://dev.mysql.com/doc/refman/5.0/en/update-speed.html – 2012-04-23 22:39:51