Мне нужно вставить данные в одну временную таблицу, используя две таблицы Joins. Полное выполнение одной из моих таблиц с hist_data_app (примерно 300 миллионов) записей занимает 30 минут. Я хотел бы знать как я более оптимизировал запрос, чтобы сделать его быстрее.
Первая таблица содержит данные журнала изменений с некоторыми конкретными данными, а другая таблица содержит все данные, связанные с этим. Ниже приведен мой оператор создания обеих таблиц.
CREATE TABLE `hist_data_app` (
`product_id` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',
`application_id` INT(10) UNSIGNED NOT NULL DEFAULT '0',
`year_id` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
`history_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',
`field_name` VARCHAR(60) NOT NULL COLLATE 'utf8_unicode_ci',
`old_value` TEXT NOT NULL COLLATE 'utf8_unicode_ci',
`new_value` TEXT NOT NULL COLLATE 'utf8_unicode_ci',
`comments` TEXT NOT NULL,
INDEX `ps` (`product_id`, `history_id`)
)
CREATE TABLE `histry_log` (
`history_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',
`history_hash` CHAR(32) NOT NULL COLLATE 'utf8_unicode_ci',
`type` ENUM('products','brands','partnames','mc_partnames','applications') NOT NULL,
`user_id` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
`stamp` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00',
`source` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
`source_data` TEXT NOT NULL COLLATE 'utf8_unicode_ci',
`description` TEXT NOT NULL COLLATE 'utf8_unicode_ci',
PRIMARY KEY (`history_id`),
INDEX `Types` (`type`)
)
Это мой результат объяснения
EXPLAIN
SELECT DISTINCT a.product_id
, a.history_id
, a.comments
, a.field_name
FROM history_log b
JOIN hist_data_app a
ON a.history_id = b.history_id
GROUP
BY product_id;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE a ALL NULL NULL NULL NULL 278327646 Using temporary; Using filesort
1 SIMPLE b eq_ref PRIMARY PRIMARY 8 LONGBOW_data.a.history_id 1 Using index
таблица history_app_data
product_id application_id year_id history_id
598865023 12813220945 92 16777304
598865023 12813220945 93 16777304
598865023 12813221222 93 16777304
598865023 12815428123 94 16777304
598865023 12813221833 92 16777304
598865023 12813221833 93 16777304
598865023 12815457549 92 16777304
598865023 12815457549 93 16777304
598865023 12815457549 94 16777304