为了在我的网站上加快速度,我使用APC将小表存储为数组,这大大加快了我的查询速度。特别是一个表(我仍然保留JOIN)有将近3000行,我想知道把它放在数组中并使用APC存储是否有效?还是太大了?
我存储的其他表最多有20行。
有许多ini设置,这些设置将决定您可以存储的值的最大大小。
APC特定指令的列表可以在这里找到。http://php.net/manual/en/apc.configuration.php
与您的问题最相关的是:
apx.max_file_size
-阻止缓存大于此值的文件。默认值为1M。
"行"并不能用大小来描述数据。不过,缓存数千个"行"并非没有道理。通过序列化数组,然后使用strlen()
/mb_strlen()
,可以更好地了解数组的大小。您可能不希望每个文件的大小超过1MB,但您可以根据需要增加APC可用的共享内存的总大小/段,具体取决于可用的RAM。
如果你已经修复了索引问题,也许你会确定这不是一个很好的缓存候选。在考虑缓存内容时,有几个因素需要考虑。。。数据多久更改一次?从数据库中提取数据的成本是否很高/速度慢或请求频繁?