我想知道是否最好使用mysql或使用文件來存儲數據?什麼更安全,更快?我正在談論php和mysql。使用mysql或文件來存儲數據更好嗎?
2
A
回答
6
它完全取決於您的要求和設置。
對於少量不需要複雜查詢的數據,文件速度更快。網站緩存就是一個例子。
對於具有更多結構的較大的數據集或集,數據庫將使您能夠以更高級的方式查詢您的數據。
就安全性而言,文件可以被保護(使用權限)並存儲在web根目錄之外。數據庫可以鎖定到某些主機,並且可以讓用戶擁有不同的角色/權限。
0
取決於數據。
除非它真的很微不足道,你也可以使用mysql。沒有明顯的缺點。
0
一般來說,你將需要某種數據庫或對象存儲來存儲你的數據,因爲它提供了一個乾淨的界面,以檢索您的數據。但是,它非常依賴於您試圖存儲的數據。
如果您正在製作一個包含用戶可修改數據的網站,那麼您可能需要使用MySQL或其他數據庫。如果你只是在談論輸入一些文件,數據庫的開銷可能比它的價值更麻煩。
爲了提供更好的答案,我們需要知道您正在存儲什麼類型的數據以及如何訪問它。
1
如上所述,它取決於數據,也取決於當前的瓶頸。
如果您的應用程序在IO資源上已經很短的服務器上運行,那麼您可能更喜歡網絡類型的存儲。
安全問題與安裝和良好實踐相比,與使用的技術更相關。如果你寫文件,你需要確保它們不可下載。如果你使用數據庫,你需要照顧SQL注入等...
我只想強調,你不限於文件和關係數據庫。
您還可以使用memcached將數據存儲在內存中(例如,理想的緩存)。 NOSQL數據庫類似Redis也是一個選項。
- 數據庫(即MySQL的):
優點:搜索,能夠處理複雜和結構化數據,可以在不同的服務器上託管,持續
缺點:慢
典型用法:業務數據存儲 - 文件:
優點:非常易於安裝,相當快,持續
缺點:不適合處理非常複雜的數據,而不是搜索,會消耗服務器主機IO資源,不那快速
典型用法:日誌文件,模板緩存文件 - NOSQL(即Redis的):
優點:速度快,可安裝在遠程主機上,持續
缺點:不易搜索,不適合強烈的結構化數據
典型用法:性能黑客(搜索) - 內存:
優點:最快的一個!可以設置在遠程主機上 缺點:相同NOSQL +不是持久
典型用法:對象緩存
相關問題
- 1. 使用數組或對象來存儲結構化數據會更好嗎?
- 2. 將圖像文件或URL存儲在MySQL數據庫中?哪個更好?
- 3. 最好的MySQL數據類型來存儲MD5散列或NULL
- 4. 使用json API pull來存儲在文件或數據庫中
- 5. 最好的數據庫來存儲HTML文件(或一般的文件)
- 6. 使用JSONArray或正常數組來存儲/讀取數據更高效嗎?
- 7. 創建持久性存儲庫還是使用固定文件來處理數據會更好嗎?
- 8. 用它來存儲QC本身的函數庫,存儲庫更好嗎?
- 9. 將數據存儲在plist或Sqlite數據庫中會更好嗎?
- 10. 更好嗎? $(文件)或$('文件')
- 11. 將數據保存在XML或數據庫中會更好嗎?
- 12. 更好的方法來存儲配置設置 - 內存或數據庫
- 13. 使用mysql來存儲註釋或將它們寫入PHP中的文件或XML文件並在主頁上顯示它們會更好嗎?
- 14. 使用列表來存儲來自BufferedReader文件的數據
- 15. 使用自定義Java對象還是使用HashMaps來存儲數據更好
- 16. Lucene - 更好的方法來存儲文本或索引
- 17. 使用MySQL代替文本文件或文件名以便使用PHP的圖像順序更快更好嗎?
- 18. 更好的方式來存儲可更新的科學數據?
- 19. 將大文件存儲在MySQL數據庫中的更好方法?
- 20. MySQL:更好地存儲數組/ json或創建不同的行?
- 21. 在數據庫表列中存儲對文件的引用或僅檢查文件是否存在更好
- 22. MySQL枚舉。使用字符串或數字更好嗎
- 23. 使用.settings存儲控件的文本數據是否好?
- 24. 更好地維護數據存儲或csv文件中的列表?
- 25. 在數據庫中存儲會話數據更好bytea或文本類型列
- 26. 將HTML緩存在數據庫或文件系統中會更好嗎?
- 27. 使用文本文件來存儲數據
- 28. mysql數據庫中的文件存儲
- 29. 從表txt文件存儲數據mysql
- 30. Ionic從NoSQL或MySQL數據庫使用數據更容易嗎?
沒有單一的正確答案。取決於項目的具體情況。什麼樣的文件,其中有多少,可搜索與否等。 – 2010-01-04 21:39:25
這個問題太模糊 - 它需要更多的細節才能得到正確的答案。 – 2010-01-04 21:44:39