What's with all the old topics being dug up lately?
MySQL library commands (as well as pgsql, oci, etc...) are just as easy/difficult as using file library commands. But file handling simply
cannot beat
"UPDATE this WHERE this = this", etc...
Databases are
extremely easy to backup, whether you prefer a web interface, like PHPMyAdmin or PHPMyBackup, or a Windows GUI, like SQLyog Free.
The same goes for restoring. I can have a database backed up and installed on another host in under a minute. In fact I just did this last night with about 6 databases while moving my hosting from hostgator to jaguarpc. Took me all of about 5 minutes.
And let's look at it on a larger scale. Say you have 3,000 (or 300,000, or 3,000,000) items and you want to page them out to show only 25 per page. With flat files you will almost certainly have to load all items into an array, loop through them till you come to the desired results, then display them... this can be pretty slow and eat up a lot of memory. With MySQL it's done effortlessly by appending a limit/offset to the query.
Even when using a relatively small database the processing time should at least be acknowledged. With a small database, the difference in efficiency will not be noticeable below a few milliseconds... but the overhead is still there, just on a smaller scale. And that's not even bringing into account all the extra code needed for flat databases to perform the identical task with SQL.
I'm not at all saying flat files are bad, but if you try to add any type of complexity to the app it can become a huge headache in comparison to SQL.