我无法找到在基于php的应用上限制用户存储空间的最佳方法。我发现another question但它似乎不是解决此问题的最佳方式。该问题的答案建议运行mysql SUM命令以获取用户当前正在使用的空间。这有效吗?其他人通常做什么?
我的案例涉及为用户存储图像。图像被加载到云存储提供程序中,并在本地数据库中记录文件大小和名称。我们假设用户获得的最大空间为10 GB。如果压缩后每张图像为300 kb,那么每个用户的图像大约为33,000张。如果有1,000个用户,那将是~33,000,000个图像,因此表中的行数为33,000,000。 This question表明,当考虑很多行时,sum命令有点慢。
我想到的另一个选项是每次上传或删除图像时递增和递减计数器值,但这可能会导致一致性和同步问题。 HM ...
答案 0 :(得分:1)
我认为#increment和递减计数器值#将是您的解决方案,为了保持一致性,您可以运行cronjob来查询从属数据库并在特定时间段同步值(或者在维护时运行脚本数据库)。我现在用这种方式,到目前为止效果很好。