簡體   English   中英

PHP,我應該使用json而不是mysql嗎?

[英]Php, should i use json instead of mysql?

我正在考慮將某些內容插入mysql數據庫時創建json / xml / text,以便php頁面將讀取此內容,而不是mysql查詢。 當數據已經在mysql數據庫中更新后,它也會更新json / xml文件。 這是一個好主意嗎? 看來,這將減少mysql查詢,因此我認為這可能很好。

看來,這將減少mysql查詢,所以我認為這可能很好。

這取決於。 可能不是。

您打算做的是一種緩存形式。 如果頁面上使用的查詢確實非常復雜,並且在進行基准測試時需要花費很長時間,那么將結果存儲在緩存的文件中並在數據更改時進行更新有時是一件好事。

但是,在每個請求上運行一些簡單的SELECT查詢,無需擔心性能方面的問題。 如果您沒有看到任何實際的性能問題,那么最好還是堅持使用SQL查詢。 正確索引的數據庫確實非常快。

你的目標是什么? 獲得更多性能?

性能優化的第一條規則:了解您的瓶頸! 不要優化黑匣子。 在每次優化前后都要進行基准測試。

我懷疑您的數據庫是您當前的瓶頸。 即使是這樣,也有更好的方法來提高性能,即避免使用語句,而不是將結果存儲在json /文本文件中。

  1. 使用MySQL查詢緩存

    MySQL在緩存結果方面確實非常出色。 您不應該自己照顧緩存結果。 重要的是:足夠的RAM。 查看MySQL文檔以獲取更多信息: http : //dev.mysql.com/doc/refman/5.1/en/query-cache.html

  2. 實施更多的緩存層

    為了獲得更高的性能,您可以在MySQL數據庫之前實現第二個緩存層,甚至避免調用數據庫。 您可以使用memcached或其他NoSQL解決方案(Redis,MongoDB等)以一種非持久的,很棒的快速方式存儲初始結果(當然,在第一次調用時,您需要從數據庫中獲取結果)。

  3. 知道你的瓶頸

    正如我之前說過的,性能優化中最重要的事情是知道瓶頸在哪里,以及優化能為您帶來多少收益。 至少感覺很不錯:嘿,...完成XYZ之后,系統速度提高了6000%。 :)

也許您的數據庫不是現在需要加快的事情。 也許安裝APC將加快您的應用程序。 :)

但是回到您的問題:如果您真的要將這些結果存儲在JSON /文本文件中,則應該將這些文件存儲在tmpfs / RAM文件系統中-以便可以非常快速地寫入和讀取它們。

我想這真的取決於。 如果您正在編寫要用AJAX加載的頁面,並且您的設置或配置很少更改,但是每次都需要加載,那么請繼續並將其寫入json文件。

如果您要加載的內容是動態的,或者您是通過服務器端腳本加載的,則必須使用MySQL。

請注意:如果您開始將設置或數據寫入json文件,則可能會遇到一百萬個關於安全性和權限的問題。

取決於您的應用程序大小。 如果與數據庫交互的東西很少。 您可以使用JSON存儲。

但是,如果數據庫很大,並且想使用RDBMS概念,那么將很難管理。

我希望您閱讀這篇文章:

MySQL-vs-JSON-文件數據存儲

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM