2010-01-04 81 views
2

我想知道是否最好使用mysql或使用文件來存儲數據?什麼更安全,更快?我正在談論php和mysql。使用mysql或文件來存儲數據更好嗎?

+3

沒有單一的正確答案。取決於項目的具體情況。什麼樣的文件,其中有多少,可搜索與否等。 – 2010-01-04 21:39:25

+0

這個問題太模糊 - 它需要更多的細節才能得到正確的答案。 – 2010-01-04 21:44:39

回答

6

它完全取決於您的要求和設置。

對於少量不需要複雜查詢的數據,文件速度更快。網站緩存就是一個例子。

對於具有更多結構的較大的數據集或集,數據庫將使您能夠以更高級的方式查詢您的數據。

就安全性而言,文件可以被保護(使用權限)並存儲在web根目錄之外。數據庫可以鎖定到某些主機,並且可以讓用戶擁有不同的角色/權限。

0

取決於數據。

除非它真的很微不足道,你也可以使用mysql。沒有明顯的缺點。

0

一般來說,你將需要某種數據庫或對象存儲來存儲你的數據,因爲它提供了一個乾淨的界面,以檢索您的數據。但是,它非常依賴於您試圖存儲的數據。

如果您正在製作一個包含用戶可修改數據的網站,那麼您可能需要使用MySQL或其他數據庫。如果你只是在談論輸入一些文件,數據庫的開銷可能比它的價值更麻煩。

爲了提供更好的答案,我們需要知道您正在存儲什麼類型的數據以及如何訪問它。

1

如上所述,它取決於數據,也取決於當前的瓶頸。
如果您的應用程序在IO資源上已經很短的服務器上運行,那麼您可能更喜歡網絡類型的存儲。

安全問題與安裝和良好實踐相比,與使用的技術更相關。如果你寫文件,你需要確保它們不可下載。如果你使用數據庫,你需要照顧SQL注入等...

我只想強調,你不限於文件和關係數據庫。

您還可以使用memcached將數據存儲在內存中(例如,理想的緩存)。 NOSQL數據庫類似Redis也是一個選項。

  • 數據庫(即MySQL的):
    優點:搜索,能夠處理複雜和結構化數據,可以在不同的服務器上託管,持續
    缺點:慢
    典型用法:業務數據存儲
  • 文件:
    優點:非常易於安裝,相當快,持續
    缺點:不適合處理非常複雜的數據,而不是搜索,會消耗服務器主機IO資源,不快速
    典型用法:日誌文件,模板緩存文件
  • NOSQL(即Redis的):
    優點:速度快,可安裝在遠程主機上,持續
    缺點:不易搜索,不適合強烈的結構化數據
    典型用法:性能黑客(搜索)
  • 內存:
    優點:最快的一個!可以設置在遠程主機上 缺點:相同NOSQL +不是持久
    典型用法:對象緩存
相關問題