@MasterCopipaster

Как при создании дампа базы sql разделить структуру и ключи?

При создании дампа я получаю примерно такую структуру
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 таблиц это руками не сложно поправить, а вот когда у вас их за две сотни, это уже проблемно.

Как разделить данные и структуру я знаю, а вот как разделить ключи и структуру чет не нагуглил... - может знает кто?
  • Вопрос задан
  • 71 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы