Php,我应该使用json而不是mysql吗?

Mal*_*xxl 1 php xml mysql json

我正在考虑在将某些东西插入mysql数据库时创建一个json/xml/text,这样php页面就会读取这个而不是mysql查询.当数据在mysql数据库中更新时,它也会更新json/xml文件.这是一个好主意吗?看来,这将有更少的mysql查询,所以我认为这可能是好的.

Pek*_*ica 7

看起来,这将有更少的mysql查询所以我认为这可能是好的.

这取决于.可能不是.

你打算做的是一种缓存形式.如果在页面上使用的查询确实非常复杂并且在基准测试时需要很长时间,那么将结果存储在缓存文件中并在数据更改时更新它有时是一件好事.

但是,在每个请求上运行一些简单的SELECT查询都不用担心性能问题.如果您没有看到任何实际的性能问题,那么您可能最好坚持使用SQL查询.正确索引的数据库真的非常快.

  • 这个.@Malixxl的问题是过早优化的经典案例...... (3认同)

Mar*_*ger 6

你的目标是什么?获得更多表现?

性能优化的第一条规则: 了解您的瓶颈!不要优化黑匣子.在每次优化之前和之后做基准测试.

我怀疑,你的数据库是你目前的瓶颈.即便如此,有更好的方法来改善性能,即避免语句,而不是将结果存储在json/text文件中.

  1. 使用MySQL Query缓存

    MySQL非常适合缓存结果.您不应该自己处理缓存结果.重要的是:足够的RAM.有关更多信息,请查看MySQL文档:http://dev.mysql.com/doc/refman/5.1/en/query-cache.html

  2. 实现更多缓存层

    为了获得更高的性能,您可以在MySQL数据库之前实现第二个缓存层,以避免对数据库的调用.您可以使用memcached或其他NoSQL解决方案(Redis,MongoDB等)以非持久,非常棒的方式存储初始结果(在第一次调用时需要从DB获取结果).

  3. 了解你的瓶颈

    正如我之前所说,性能优化中最重要的是知道瓶颈在哪里,以及通过优化获得多少.至少对于统计来说这是一种非常好的感觉:嘿,......在我们做XYZ之后,系统的速度提高了6000%.:)

也许你的数据库不是现在需要加速的东西.也许安装APC会加快您的应用程序.:)

但回到你的问题:如果你真的想将这些结果存储在JSON /文本文件中,你应该将文件存储在tmpfs/RAM文件系统中 - 这样它们就可以非常快速地写入和读取.


Mic*_*elH 5

这真的取决于我的想法.如果您正在编写要加载AJAX的页面,并且您的设置或配置很少更改但每次都需要加载,那么请继续将其写入json文件.

如果您要加载的内容是动态的,或者您是通过服务器端脚本加载的,那么MySQL将是必须的.

注意:如果您开始将设置或数据写入json文件,则可能会遇到一百万个安全性和权限问题.