我有一個英文單詞詞典的文本文件,超過450,000字。在我將它保存在一個文本文件中之前它運行良好。但是現在,我上傳了帶有相同數量詞彙的新詞典,但其含義也一樣。我只想問一些有經驗的人,在不減緩網站速度的情況下,保存這個最好的方法是什麼?我仍然應該將其保存在服務器上的文本文件中,還是應該現在保存在數據庫中?在數據庫中保存與在文本文件中保存的優點是什麼?反之亦然?保存大文件查詢的最佳方法
回答
絕對使用數據庫。它是:
- 更容易查詢(只是使用的,而不是試圖解析文本PHP MySQL庫)
- 容易維護(有很多偉大的數據庫管理工具)
- 更快[1]
[1]在你的情況下,數據庫可能會顯着更快,因爲它看起來像你會做很多讀取。某些數據庫系統緩存頻繁的讀取查詢以進行快速響應
一個文本文件確實有其優點(例如,可以更容易地備份,在文本文件中查找單詞不容易受到SQL注入攻擊)。但是,如果正確實施,數據庫更適合這樣的事情。
可以請你解釋一下,我該如何避免數據庫的SQL注入攻擊?爲什麼你說文本文件很容易呢?如果這是一個愚蠢的問題,我很抱歉,所有這些都是新的。 – Gurnor
其實我說查詢文本文件不容易發生注入攻擊,因爲這是一個數據庫特定的威脅。看看使用PDO:http://php.net/manual/en/book.pdo.php如果正確實施,它是安全的注射攻擊。 –
SQL注入僅適用於用戶能夠插入或修改數據庫中的數據的情況。這聽起來不像這裏的情況,但無論如何,這裏有大量有關SQL注入的信息:http://stackoverflow.com/questions/60174/best-way-to-stop-sql-injection-in-php – EdoDodo
任何時候當你引用大量的信息時,你最好的選擇就是與數據庫接口。數據庫將幫助你減少一個帶寬,你不需要用戶訪問一個大的文本文件。
Gurnor,
能否請您解釋一下多一點我如何才能避免數據庫SQL注入攻擊?你爲什麼說文本文件很容易呢?
那麼如果你使用的是文本文件,沒有數據庫,所以沒辦法做sql注入攻擊。這裏是展示SQL注入,以及如何簡單的例子,以防止他們一個很好的鏈接:
http://www.tizag.com/mysqlTutorial/mysql-php-sql-injection.php
- 1. 緩存大量mysql查詢的最佳方法?
- 2. 檢查大小寫查詢字符串的最佳方法
- 3. 將DataSet保存爲CSV文件的最佳方法
- 4. 在iPhone上保存XML文件的最佳方法?
- 5. 在文件中保存點雲數組的最佳方法
- 6. 保存圖像的最佳方法?
- 7. 保存父對象的最佳方法
- 8. 保存源函數的最佳方法
- 9. 在文件中存儲大型Python字典的最佳方法
- 10. 存儲大量文件的最佳方法
- 11. 在ElasticSearch中保存用戶搜索查詢的最佳方式?
- 12. 緩存大型SQL查詢 - 構建的最佳方式?
- 13. 查詢DynamoDB的最佳方法
- 14. 查詢TypedDataSet的最佳方法
- 15. 構建查詢的最佳方法?
- 16. 測試HTTP查詢的最佳方法
- 17. 在服務器端保存大量數組的最佳方法
- 18. 將大量數據保存到對象中的最佳方法
- 19. 將大量記錄保存到XLS的最佳方法
- 20. 在iOS上保存大型數組的最佳方法
- 21. 執行大量Azure表查詢的最佳方法?
- 22. 在Codeigniter中創建大型動態查詢的最佳方法?
- 23. 存儲查找值的最佳方法
- 24. Xcode - 保存大量整數到文件的最簡化方法
- 25. 將大型數據保存到文件的最快方法
- 26. Objective-C:保存文本。最佳方案?
- 27. 查詢邏輯最佳方法
- 28. 動態查詢數據 - 最佳方法
- 29. 創建XML文檔並保存到文件的最佳方式
- 30. 存儲查詢結果的最佳方法
完全取決於什麼數據的用途。 – Chronial