hostprofi.ru
Подобрать хостинг
Термин·буква И

Импорт БД

краткое определение

Импорт БД — операция загрузки данных из дамп-файла (SQL, CSV, JSON) в базу данных. Восстанавливает схему таблиц и данные из резервной копии или переносит базу между серверами. Выполняется через mysql, psql, mysqldump, pg_restore или phpMyAdmin.

Импорт базы данных — процесс загрузки данных и структуры таблиц из файла в СУБД. Типовые сценарии: восстановление из резервной копии, миграция базы между серверами или хостингами, загрузка данных из сторонней системы. Обратная операция — экспорт (дамп).

Как работает

Для MySQL/MariaDB дамп создаётся mysqldump и представляет собой SQL-файл с командами CREATE TABLE и INSERT. Импорт выполняется командой:

mysql -u user -p database_name < dump.sql

Для больших баз (10+ ГБ) эффективнее использовать mydumper/myloader — многопоточный инструмент, работающий в 5–10 раз быстрее mysqldump. Или Percona XtraBackup для физического копирования файлов InnoDB без SQL-парсинга.

Для PostgreSQL дамп создаётся pg_dump (в SQL или custom формате). Импорт: psql -U user -d dbname < dump.sql или pg_restore -U user -d dbname dump.custom. Custom-формат поддерживает параллельное восстановление: pg_restore -j 4 использует 4 потока.

При импорте через phpMyAdmin есть лимит на размер файла, задаваемый в PHP: upload_max_filesize и post_max_size. Для файлов свыше 50–100 МБ используйте командную строку.

История

Утилита mysqldump разработана Игорем Романовым в 1998 году как часть MySQL 3.23. pg_dump входит в дистрибутив PostgreSQL с первых версий (1996). MyDumper создан в 2011 году командой Booking.com и Percona для ускорения дампа и загрузки крупных баз.

Связь с хостингом

При переезде сайта на другой хостинг или VPS импорт БД — обязательный этап. Типичная последовательность: создать дамп на старом хостинге → перенести файл → создать базу на новом хостинге → выполнить импорт. Большие базы (>500 МБ) на виртуальном хостинге с phpMyAdmin потребуют временного увеличения PHP-лимитов или переноса через SSH/CLI.

Инструменты импорта

mysqldump → mysql: mysql -u root -p db_name < dump.sql. Для больших файлов (>1 ГБ): pv dump.sql | mysql db_name (показывает прогресс). PostgreSQL: pg_restore -d dbname dump.backup. MongoDB: mongorestore --db dbname ./dump/.

Импорт больших БД

Оптимизация для MySQL: перед импортом отключить проверки (SET FOREIGN_KEY_CHECKS=0; SET UNIQUE_CHECKS=0). Размер innodb_buffer_pool увеличить временно. Для сжатых дампов: gzip -dc dump.sql.gz | mysql db. Время импорта 10 ГБ дампа — от 30 минут до нескольких часов.

Миграция БД между серверами

Lossless migration: mysqldump на источнике → rsync дампа → импорт на цели. Для больших БД без простоя: Percona XtraBackup (горячий бэкап InnoDB). При смене версии MySQL — проверить совместимость типов данных и функций (особенно при переходе 5.7 → 8.0).

Проверка целостности после импорта

MySQL: CHECK TABLE tablename проверяет индексы и данные. ANALYZE TABLE обновляет статистику после импорта. PostgreSQL: ANALYZE после pg_restore. Сравнение числа строк: SELECT COUNT(*) FROM table на источнике и цели. CHECKSUM TABLE сравнивает контрольную сумму.

mydumper/myloader — быстрый импорт MySQL

mydumper: параллельный дамп MySQL в несколько файлов. myloader: параллельный импорт. Для БД > 10 ГБ ускорение в 4–8 раз vs mysqldump. myloader -u root -p pass -d /backup/dump/ --threads=8. Использует несколько потоков для параллельной записи в разные таблицы.

Другие термины