0

我正在使用 PHP 和 MySQL 作为数据存储为我的站点构建用户系统,我不想在每次用户登录时都运行 MySQL 查询,所以我正在考虑使用某种缓存解决方案(例如memcache) 来存储用户数据。

我的问题是,这是一种安全实用的做法吗?如果没有,我怎样才能尽可能减少 MySQL 查询?

4

2 回答 2

0

您的站点需要处理的并发用户量是多少?在我看来,这种缓存的开销是多余的......

如果您仍然使用内存缓存,考虑到安全性,请记住内存缓存对于您的应用程序就像会话对象对于您的应用程序一样;只要用户无权访问它,它就被认为是安全的。

其他减少 MySQL 开销的方法是在登录后在会话变量中设置所有常用信息。

于 2013-05-18T13:28:45.807 回答
0

好吧,我的朋友,很大程度上取决于您使用的系统/框架类型。我已经使用 Codeigniter 很长时间了,我可以告诉你一件事,如果你想减少 mysql 的负载,那么你可以使用 Codeigniter 缓存机制。您可以使用缓存驱动程序将有价值的信息存储在平面文件、memcache 甚至 APC 中,这将大大减少应用程序和 mysql 的负载。

如果您查看我的网站http://www.amitavroy.com,它是一个使用 drupal CMS 添加内容的网站,因为我已经这样做了 2 年多,并且我将前端转换为 Codeigniter 应用程序。我所有的页面都是 HTML 页面。我在几乎每个控制器之上都有一个缓存机制,它检查缓存文件夹中是否有可用的缓存 HTML 文件。如果有,那么它甚至不会使用单个查询并使用 HTML 文件作为输出。如果没有找到它,那么它将运行所需的查询。

因此,当没有缓存时,我的主页运行大约 86 个查询 - 是的,这是一个沉重的代价,因为 Drupal 将其信息传播到许多表中。但是一旦页面被缓存,它就不会运行单个查询。

事实证明,这是一种非常有用的方法。在过去,我曾在很多网站上工作过,这些网站必须处理非常大的流量,而且这种机制确实有效。它所做的只是依赖 IO 并读取 HTML 文件。如果您意识到这一点,甚至 boost 模块都会这样做。

如果您需要更多帮助,您甚至可以亲自与我联系。非常乐意提供帮助。干杯

于 2013-05-18T13:34:18.837 回答