使用PHP中的单个注册表高效工作


Working efficiently with single-registry in PHP

我有一个系统,在这个系统中,我使用PHP对单个注册表进行多次读写,过一段时间(几分钟)就会消失。

基本上,这是一种带有计数器(只是一个整数)的投票系统,计数器可以增加和减少(因子为1)。

因此,我必须在每次用户访问此页面时阅读它,并在大多数时候(当用户交互时)在上面书写。

目前,我使用的是一个DB(MySQL),它有一个表和一个带一列的注册表。

但我认为它效率很低。

我担心,如果网站继续增长,它会崩溃,因为其他内容可以缓存,但这不能,因为它应该是实时的。

我曾想过使用一个文件,但它可能更糟,对吧?

我被托管在一个共享服务中,并且。。,因此,我不能使用MemCached或Redis

关于如何有效地做到这一点,有什么想法吗

提前谢谢。

我担心在共享托管环境中,这会很困难。您可能无法访问/dev/shm,因此文件缓存不是一个选项。APC和memcached也不起作用。

因此,只剩下一个选项:优化查询。首先,我建议您只在一个写得很多的表上使用INSERT。然后,制作第二个表,该表只保存聚合值。这里您需要UPDATE,但更新频率应为一分钟或两分钟(同时从表1中删除原始数据)。因此,您的数据仍然接近实时,但性能要好得多,而且它可以随着更新时间的增加而直接扩展。