gpt4 book ai didi

php - mySQL - 增加页面浏览量的更快方法?

转载 作者:行者123 更新时间:2023-11-29 04:52:22 26 4
gpt4 key购买 nike

我目前正在使用 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
)

低优先级

[4] => Array
(
[sql] => UPDATE LOW_PRIORITY `pages` SET hits = hits+1 WHERE id=1 LIMIT 1
[time] => Between 17 & 30ms
)

最佳答案

列上的索引实际上会使列更新速度变慢,因为索引也需要修改。

使用纯 MySQL,除了调整服务器设置外,您无能为力:在临时内存中保留更多操作,减少写入磁盘的频率。但是,服务器仍然需要将操作记录到一个日志文件中。 ACID 并不便宜。

因此,大多数服务器使用另一种临时存储,例如 memcached 或其他。通过这种方式,值存储在 RAM 中,只有当值达到某个阈值时,才会写入数据库。

关于php - mySQL - 增加页面浏览量的更快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10289248/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com