現在UPDATE pages SET hits = hits+1 WHERE id=:id
、PDO でページ ヒットをインクリメントするために使用していますが、スクリプトのプロファイリング中に、更新に平均 30 ミリ秒から 65 ミリ秒かかります。
インクリメントするより速い方法はありますか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
)
)
アップデート
LIMIT 1 句を使用すると、10 ~ 15 ミリ秒高速化されたようです
[4] => Array
(
[sql] => UPDATE `pages` SET hits = hits+1 WHERE id=1 LIMIT 1
[time] => Between 15 & 25ms
)
LOW_PRIORITY で
[4] => Array
(
[sql] => UPDATE LOW_PRIORITY `pages` SET hits = hits+1 WHERE id=1 LIMIT 1
[time] => Between 17 & 30ms
)