Особенно, когда старая база данных...
Особенно, когда старая база данных в старом неведомом формате или вообще представляет собой что-то самодельное.
В подобных случаях пользователь начинает писать скрипт, который "сосет" данные из файла, парсит их и при помощи банального insert-а укладывает в таблицы.
В общем, в этом подходе нет ничего предосудительного, особенно, когда вам необходимо залить десяток-другой тысяч строк. Но если ваша база похожа на настоящую, и количество записей измеряется миллионами, то лучше воспользоваться специальной возможностью MySQL, которая зовется LOAD DATA INFILE.
Это очень гибкая функция MySQL, позволяющая прочесть из файла данные в базу. При этом, гибкость заключается в том, что вы можете описать формат хранения данных в файле, указать диапазон данных, подлежащих заливке и так далее.
Подробно эта функция описана тут: http://www.MySQL.com/doc/L/O/LOAD_DATA.html.
И, что особенно важно, скорость заливки данных при помощи LOAD DATA намного превышает построчную скорость заливки insert-ом.
Надеюсь, функция LOAD DATA окажется вам полезной.
* * *
Ну а что делать, если у вас есть необходимость перенести не только ваши данные, но и всю конфигурацию базы: таблицы, правила, индексы и так далее?
В подобном случае нам очень полезно будет дампироование базы.
Что такое дамп базы. Это вывод структуры и данных из базы в формате SQL-запросов.
Поясню. Если у нас в базе есть таблицы, а в таблицах данные, то в дамп мы получим SQL-запросы на построение таблиц и insert-ы для заполнения этих таблиц данными.
Да что я вам рассказываю, вы сами можете сделать дамп любой своей базы посмотреть на него.
В пакете MySQL есть mysqldump который этим и занимается. Запуск mysqldump очень похож на запуск стандартного клиента MySQL, о котором я писал вначале этого выпуска.