Чтение из базы данных дороже, без вопросов.
Где живут плоские файлы? В файловой системе. В лучшем случае к ним недавно обращались, поэтому операционная система кэшировала файлы в памяти, и это просто считывание из памяти, чтобы передать их в вашу PHP-программу для отправки клиенту. В худшем случае ОС должна скопировать файл с диска в память, прежде чем ваша программа сможет его использовать.
Где хранятся данные в базе данных? В файловой системе. В лучшем случае к ним недавно обращались, поэтому MySQL хранит эту таблицу в памяти. Однако ваша программа не может получить доступ к этой памяти напрямую, ей нужно сначала установить соединение с сервером, отправить данные аутентификации туда и обратно, отправить запрос, MySQL должен проанализировать и выполнить запрос, а затем извлечь строку из памяти и отправьте его в вашу программу. В худшем случае ОС должна скопировать файл таблицы базы данных на диске в память, прежде чем MySQL сможет получить строку для отправки.
Как вы можете видеть, сценарии практически одинаковы, за исключением того, что использование базы данных сопряжено с дополнительными издержками соединений и запросов перед извлечением данных из памяти или с диска.