Использование текстовой таблицы вместо таблицы MySQL

У меня есть программа PHP, которая использует таблицу MySQL примерно с 23000 строк. Я заметил, что таблица используется только в запросе вида "SELECT * FROM [table]". Итак, чтобы упростить установку моей программы, я подумал о том, чтобы полностью удалить MySQL, поместить таблицу в текстовый файл (например, в формате значений, разделенных табуляцией), и всякий раз, когда есть запрос «SELECT * FROM [table]» , просто прочитайте всю таблицу из текстового файла в память.

Каковы могут быть недостатки такого изменения? Будет ли программа работать значительно медленнее или потреблять значительно больше памяти? Как я могу измерить эти эффекты?


person Erel Segal-Halevi    schedule 15.01.2014    source источник
comment
Не уверен, что это дубликат, но см. stackoverflow.com/questions/8003454/   -  person Mike    schedule 15.01.2014
comment
Или также: stackoverflow.com/questions/16206131/   -  person Mike    schedule 15.01.2014
comment
Одна из вещей, которую вы должны учитывать при использовании текстовых файлов для этого, — это поместить их за пределы ваших папок public или, если вы можете использовать .htaccess на своем сервере, используйте это, чтобы защитить их от посторонних глаз.   -  person Funk Forty Niner    schedule 15.01.2014


Ответы (1)


Основное отличие будет в индексации. Сканирование файла на наличие значений будет намного медленнее, чем позволить MySQL сделать это за вас.

Если вы начнете писать свою собственную схему индексации, вы откроете мир боли.

Если вам действительно нужна каждая строка из таблицы каждый раз без индексации, сортировки и т. д., то плоский файл будет гораздо более эффективным и гораздо лучшим способом сделать это.

person Tim B    schedule 15.01.2014
comment
Как я уже сказал, все запросы состоят только из SELECT * FROM [table] — нет предложений where. В таком случае актуален ли вопрос индексации? - person Erel Segal-Halevi; 15.01.2014
comment
Смотрите отредактированный ответ. Вам действительно нужно читать полные 23k строк каждый раз, когда вызывается PHP? Это звучит ужасно неэффективно. - person Tim B; 15.01.2014