Конечно, мы понимаем, что на самом нижнем уровне данные в MySQL хранятся тоже в файлах, но мы принимает все как сказано — файлы, это обычные текстовые файлы, вроде .dat, .txt, а база данных — это база данных MySQL. И так, начнем.
Сам по себе вопрос не стоит где хранить данные, вопрос скорее что за проект, если малый, то и обычные файлы сгодятся — если большой, то тут реляционные базы ну или объектные. В общем мы говорим о том, где быстрее проходит выборка: из MySQL или из обычного текстового файла.
И так, у нас есть таблица в базе с 10 000 записями и у нас есть текстовый файл data.dat с таким же количеством записей. Данные и там, и там одинаковые. У нас будет три выборки по одной строке. Сначала вытянем запись с id=1000, потом с id=5000 и наконец с id=9999. Каждый раз, естественно, будем замерять время выполнения скрипта.
Забегая на перед, скажу, что результат меня приятно удивил, так как я полагал, что выборка из файла будет намного дольше, чем оказалось на практике.
Берем запись с id = 1000
id[1000] -> name[8dHkT]
From MySQL: 0.000507116317749
—
id[1000] -> name[RZk4E]
From file: 0.0516338348389
Берем запись с id = 5000
id[5000] -> name[fd7NG]
From MySQL: 0.000649929046631
—
id[5000] -> name[N6QRK]
From file: 0.0376319885254
Берем запись с id = 9999
id[9999] -> name[knEd2]
From MySQL: 0.000375986099243
—
id[9999] -> name[bBdQQ]
From file: 0.0337388515472
Как видим, разница действительно огромная, работа с базой данных почти в сотню раз быстрее, чем с файлами напрямую. Данные были организованы в таблицы из всего пяти значений: id, name, phone, email, date.
Насчет файлов. Диски ssd были?
Не, это был HDD диск, но какие конкретно параметры были уже не вспомню.