2014-04-21 17 views
0

我无法弄清楚限制用户的存储空间在我的基于PHP的应用程序的最佳方式。我发现another question,但它似乎不是处理此问题的最佳方法。这个问题的答案建议运行一个mysql SUM命令来获取用户当前正在使用的空间。这是否有效?其他人通常做什么?如何限制用户的存储空间php

我的情况涉及为用户存储图像。这些图像被加载到云存储提供商,我保存在我的本地数据库中的文件大小和名称的记录。假设用户获得的最大空间为10 GB。如果每个图像在压缩后都是300 kb,那么每个用户的图像大约为33,000。如果有1000个用户,那么这将是约33,000,000个图像,因此在一个表中约33,000,000个行。 This question表明,当考虑多行时,sum命令有点慢。

我想到的另一个选择是在每次上传或删除图像时递增和递减计数器值,但这可能会导致一致性和同步问题。 hm ...

+2

而你的问题是?如果这是另一个关于* pp。*的最佳方法的问题,请注意您应该使用最适合您的工具。这可以非常独立于其他人分享的意见。 – hakre

+0

您发布的关于效率的链接确实会说这样的总和会很慢,但其中一些答案提出了缓解该问题的方法。但是,实际上,你有什么选择?在远程云存储服务器上移动文件系统可能无效。 – Kryten

+0

我想没有更好的选择。谢谢 – train

回答

1

我认为#增加和减少计数器值#将是您的解决方案,为了保持一致性,您可以运行cronjob查询从属数据库并在某个时间段同步该值(或运行脚本当你维护你的数据库)。我现在正在使用这种方式,到目前为止效果很好。

+0

啊,这是一个周期性cronjob同步值的好点。谢谢 – train