Я работаю с базой данных MySQL, и у нее есть две таблицы MyISAM: 1. Основная таблица (inf_article_details), содержащая более 10 миллионов записей, и 2. Временная таблица (temp_inf_article_details), содержащая около 50 000 записей. Структура этих таблиц одинакова, и они имеют только один столбец (BIGINT как тип данных) в качестве первичного ключа. Данные периодически заполняются во временную таблицу от разных поставщиков источников данных, и у меня есть запланированное задание, которое помещает данные из временной таблицы в основную таблицу.
К вашему сведению, основная таблица разделена на KEY на 20 разделов.
Информация об индексе главной таблицы (inf_articles_details), как показано ниже:
показывать индексы из inf_articles_details;
Индексная информация временной таблицы (temp_inf_articles_details), как показано ниже:
показывать индексы из temp_inf_articles_details;
Объясните результат мастер-таблицы, как показано ниже:
объяснить выберите * из inf_articles_details
Объясните результат временной таблицы, как показано ниже:
объяснить выберите * из temp_inf_articles_details
Структура основной таблицы (inf_articles_details) (всего около 70+ столбцов)
CREATE TABLE
inf_articles_details
(ard_ean_code
bigint(20) unsigned NOT NULL,ard_provider_reference
bigint(20) unsigned DEFAULT NULL,ard_reference
varchar(20) NOT NULL,ard_modified_date
datetime DEFAULT NULL,
ПЕРВИЧНЫЙ КЛЮЧ (ard_ean_code
),
КЛЮЧidx_ard_modified_date
(ard_modified_date
)
) ENGINE=MyISAM НАБОР ПО УМОЛЧАНИЮ = utf8 /*!50100 РАЗДЕЛ ПО КЛЮЧУ () РАЗДЕЛЫ 20 */
Структура временной таблицы (temp_inf_articles_details) (около 70+ столбцов)
CREATE TABLE
temp_inf_articles_details
(tard_ean_code
bigint(20) unsigned NOT NULL,tard_provider_reference
bigint(20) unsigned DEFAULT NULL,tard_status
tinyint(3) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (tard_ean_code
),
КЛЮЧidx_status
(tard_status
)
) ENGINE=MyISAM CHARSET ПО УМОЛЧАНИЮ=utf8
в рамках задачи обновления данных мы соединяем эти две таблицы в «ard_ean_code и tard_ean_code» и обновляем существующие строки в основной таблице значениями из временной таблицы и вставляем новые строки в основную таблицу из временной таблицы. Но это обновление данных занимает слишком много времени для вставки/обновления данных из временной таблицы в основную таблицу.
Есть ли какая-либо настройка, которую мне нужно сделать, чтобы улучшить производительность?
Спасибо.