将频繁访问的数据存储在文件而不是MySQL中

Row*_*wan 6 php database filesystems optimization caching

我正在研究PHP内容管理系统,并且在测试中已经注意到,几乎每个页面都会查询很多系统的MySQL表,但很少写入.我想知道的是,随着网站流量的增加,这将开始在数据库上占据重要地位,我该如何解决/阻止这种情况?

我最初的想法是开始在文件中存储一些更静态的数据(使用PHP序列化)但这实际上是否减少了服务器负载?我担心的是,我只是将高负载从数据库传输到文件系统!

如果有人能够提供更好的方法,那就太棒了.如果数据量本身有很大影响,我会详细介绍下面我将要存储的一些数据:

  • 完整的国家名单(包括ISO国家代码)
  • 网站选项(皮肤,管理员电子邮件,支持网址等)
  • 用户组(包括权限)

Mar*_*ers 13

您必须记住,在功能强大的服务器上和快速连接上从数据库中读取表可能比从本地计算机上的磁盘读取表更快.数据库将在内存中缓存这些小的,定期访问的表的全部内容.

通过在文件系统中自己实现相同的功能,只有很小的加速速度,但很有可能搞砸它并使其变慢.

最好坚持使用数据库.


Kir*_*lla 5

  1. 优化您的查询(使用mysql慢查询日志)和EXPLAIN函数.

  2. 如果很少写入表,则可以使用本机MySQL缓存.您的代码中没有任何变化,只需在my.conf中启用mysql缓存即可.

  3. 尝试使用像Smarty(smarty.net)这样的模板引擎.它拥有自己的缓存系统,运行良好,真正减少服务器负载.

  4. 你也可以使用Memcache,但它真的值得用于真正高负荷的网站.(我认为Smarty就足够了.)