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

时间:2012-02-29 09:04:42

标签: php mysql xml json

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

4 个答案:

答案 0 :(得分:7)

  

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

这取决于。可能不是。

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

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

答案 1 :(得分:6)

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

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

我怀疑,您的数据库是您当前的瓶颈。即便如此,有更好的方法可以改善性能,即避免使用语句,而不是将结果存储在json / text文件中。

  1. 使用MySQL查询缓存

    MySQL在缓存结果方面非常出色。您不应该自己处理缓存结果。重要的是:足够的RAM。查看MySQL文档以获取更多信息:http://dev.mysql.com/doc/refman/5.1/en/query-cache.html

  2. 实施更多缓存层

    为了获得更高的性能,您可以在MySQL数据库之前实现第二个缓存层,以避免对数据库的调用。你可以存储的初步结果(第一次呼叫时,你需要从DB获得的结果,当然)在非持久,真棒快速的方式使用memcached的或其它的NoSQL解决方案(Redis的,MongoDB的仅举几例)。

  3. 了解您的瓶颈

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

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

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

答案 2 :(得分:5)

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

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

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

答案 3 :(得分:2)

取决于您的申请规模。如果与数据库交互的事情很少。你可以用JSON存储。

但是如果数据库大小很大并且想要使用RDBMS概念那么就很难管理。

我希望你阅读这篇文章:

MySQL-vs-JSON-file-data-storing