Архив рассылки -программирование на PHP




Особенно, когда старая база данных...


Особенно, когда старая база данных в старом неведомом формате или вообще представляет собой что-то самодельное.

В подобных случаях пользователь начинает писать скрипт, который "сосет" данные из файла, парсит их и при помощи банального 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, о котором я писал вначале этого выпуска.









Начало    Назад    Вперед




Книжный магазин