我有一個PHP程序,使用一個約23000行的MySQL表。我注意到該表只用於「SELECT * FROM [table]」形式的查詢。所以,爲了讓我的程序更容易安裝,我想完全刪除MySQL,將表格放在一個文本文件中(例如製表符分隔值格式),並且每當有一個「SELECT * FROM [table]」查詢時,只需將文本文件中的整個表格讀入內存。使用文本列表而不是MySQL表格
這種改變的缺點是什麼?程序是否會明顯變慢或消耗更多的內存?我如何測量這些影響?
我有一個PHP程序,使用一個約23000行的MySQL表。我注意到該表只用於「SELECT * FROM [table]」形式的查詢。所以,爲了讓我的程序更容易安裝,我想完全刪除MySQL,將表格放在一個文本文件中(例如製表符分隔值格式),並且每當有一個「SELECT * FROM [table]」查詢時,只需將文本文件中的整個表格讀入內存。使用文本列表而不是MySQL表格
這種改變的缺點是什麼?程序是否會明顯變慢或消耗更多的內存?我如何測量這些影響?
主要區別將索引。掃描文件的值會比讓MySQL爲你做的慢得多。
如果你開始編寫自己的索引方案,那麼你就會開放一個受到傷害的世界。
如果你確實需要每次從表中找到每一行,而沒有索引,排序等,那麼一個平面文件將是一個更有效率和更好的方法來做到這一點。
正如我所說的,所有查詢都只是「SELECT * FROM [table]」 - 沒有「where」子句。在這種情況下,索引問題是否相關? –
查看編輯的回覆。每次調用PHP時,是否真的需要讀取完整的23k行?這聽起來非常低效。 –
不確定這是否重複,但請參閱http://stackoverflow.com/questions/8003454/is-it-faster-or-better-to-use-mysql-instead-of-text-files-or -file-name-for-orde – Mike
或者也可以:http://stackoverflow.com/questions/16206131/should-i-use-a-text-file-or-a-database-for-a-php-visitor-計數器 – Mike
您需要考慮使用文本文件來做這件事之一是將它們放在公共文件夾之外,或者如果您可以在您的服務器上使用.htaccess,那麼使用它來保護它們盯着眼睛。 –