При создании дампа я получаю примерно такую структуру
CREATE TABLE `analogs` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`article` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
`brand` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`title` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`brand_id` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`product_id` bigint(20) unsigned DEFAULT NULL,
`analog_product_id` bigint(20) unsigned DEFAULT NULL,
`l_id` bigint(20) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `analogs_article_index` (`article`),
KEY `analogs_brand_index` (`brand`),
KEY `analogs_product_id_index` (`product_id`),
KEY `analogs_analog_product_id_index` (`analog_product_id`),
KEY `analogs_brand_id_index` (`brand_id`),
CONSTRAINT `analogs_analog_product_id_foreign` FOREIGN KEY (`analog_product_id`) REFERENCES `products` (`id`),
CONSTRAINT `analogs_product_id_foreign` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=12949988 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
Проблема в том что если у вас база в терабайт - а таблиц очень много, то загрузка данных занимает кучу времени
Я погуклил, и вроде как пересчитывание ключей занимает очень много времени.
Если сначала вставить данные а потом навесить ключи то вроде как будет в разы быстрее.
Собственно вот я и хотел узнать как сделать такой бэкап
Сначала создаются таблицы со структурами
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`article` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
`brand` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`title` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`brand_id` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`product_id` bigint(20) unsigned DEFAULT NULL,
`analog_product_id` bigint(20) unsigned DEFAULT NULL,
`l_id` bigint(20) DEFAULT NULL,
Потом идет вставка данных
И потом создание ключей
PRIMARY KEY (`id`),
KEY `analogs_article_index` (`article`),
KEY `analogs_brand_index` (`brand`),
KEY `analogs_product_id_index` (`product_id`),
KEY `analogs_analog_product_id_index` (`analog_product_id`),
KEY `analogs_brand_id_index` (`brand_id`),
CONSTRAINT `analogs_analog_product_id_foreign` FOREIGN KEY (`analog_product_id`) REFERENCES `products` (`id`),
CONSTRAINT `analogs_product_id_foreign` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`)
Собственно когда 1 - 5 таблиц это руками не сложно поправить, а вот когда у вас их за две сотни, это уже проблемно.
Как разделить данные и структуру я знаю, а вот как разделить ключи и структуру чет не нагуглил... - может знает кто?