Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;“缓冲写入方案”;对于使用php、mysql的视图计数器_Php_Mysql_Counter - Fatal编程技术网

&引用;“缓冲写入方案”;对于使用php、mysql的视图计数器

&引用;“缓冲写入方案”;对于使用php、mysql的视图计数器,php,mysql,counter,Php,Mysql,Counter,我读了这个话题。我理解这个算法,但我不明白在mysql、php中是如何做到这一点的 每次注册一个新的命中,它也会被添加到内存缓冲区中,除了过期的缓存项。缓冲区本身也会在几分钟后或填充到一定大小后过期,以先发生的为准。当它过期时,它积累的所有内容都会批量写入数据库。他们称之为“缓冲写方案” 我们在mysql中使用存储引擎内存,或者在mysql、php中使用更好的解决方案 谁能告诉我如何用php、mysql为视图计数器提供“缓冲写入方案” 非常感谢。它不会比MySQL快 查询的存储过程可以加快处理速

我读了这个话题。我理解这个算法,但我不明白在mysql、php中是如何做到这一点的

每次注册一个新的命中,它也会被添加到内存缓冲区中,除了过期的缓存项。缓冲区本身也会在几分钟后或填充到一定大小后过期,以先发生的为准。当它过期时,它积累的所有内容都会批量写入数据库。他们称之为“缓冲写方案”

我们在mysql中使用存储引擎内存,或者在mysql、php中使用更好的解决方案

谁能告诉我如何用php、mysql为视图计数器提供“缓冲写入方案”


非常感谢。

它不会比MySQL快

查询的存储过程可以加快处理速度,但数据库设计是另一半

确保有一张桌子要数:

用户访问:

----------------------------
user_id | thread_id | count
----------------------------
确保在“user\u id”和“thread\u id”列上有索引或更好的两行唯一索引

当用户登录时,读取其整个线程id和计数值,并将它们保存在$\会话数组中

通过这种方式,您可以通过$\u SESSION var检查用户是否已经访问了该页面,如果用户已经访问了该页面,则只需忽略获取数据库,这将大大减少查询

然后不要忘记更新数据库,以防用户从未使用过此线程,还可以直接手动更新$\u会话数组

使用查询帮助程序:

在表(a,b,c)中插入值(1,2,3)、(4,5,6) 在重复密钥更新时,c=值(a)+值(b)

您可以简单地将insert into和update(无论需要什么)组合到一个查询中,从而提高性能

这样,只有当用户第一次进入线程时才会触发查询,而您别无选择,只能在某个地方写下来,而数据库是实现这一点的最快方法之一

只要您的thread\u id和user\u id字段被索引,您就可以非常快速地使用SELECT查询,即使表中有一百万行