Я работаю с базой данных MySQL и имеет две таблицы MyISAM 1. Таблица Master (inf_article_details), имеющая более 10 миллионов записей и 2. Таблица временного (temp_inf_article_details), имеющая около 50 000 + записей. Структура этих таблиц одинакова, и они имеют только один столбец (BIGINT как тип данных) в качестве первичного ключа. Данные заполняются во временную таблицу от разных поставщиков источников данных на периодической основе, и у меня есть запланированное задание, которое перемещает данные из временной таблицы в главную таблицу.Как повысить производительность запросов INSERT/UPDATE в MyISAM
FYI, главная таблица разбивается на ключе в 20 разделов
Индекса Информация о мастер-таблице (inf_articles_details), как показано ниже:
шоу индексов от inf_articles_details;
информации об индексе временной таблицы (temp_inf_articles_details), как показано ниже:
показывают индексы от temp_inf_articles_details;
Объясните результат мастер-таблицы, как показано ниже:
объясняют выбор * от inf_articles_details
Объясните результат временной таблицы, как показано ниже:
объяснить выберите * from temp_i nf_articles_details
Мастер таблицы (inf_articles_details) структура (существует около 70+ столбцов в общей сложности)
inf_articles_details
CREATE TABLE (
ard_ean_code
BigInt (20) без знака NOT NULL,
ard_provider_reference
BIGINT (20) unsigned DEFAULT NULL,
ard_reference
varchar (20) NOT NULL,
ard_modified_date
даты и времени DEFAULT NULL,
PRIMARY KEY (ard_ean_code
)
KEYidx_ard_modified_date
(ard_modified_date
)
) ДВИГАТЕЛЬ = MyISAM DEFAULT CHARSET = utf8/*!50100 PARTITION BY KEY() перегородками 20 */
Временная таблица (temp_inf_articles_details) структура (существует около 70+ столбцов)
CREATE TABLE
temp_inf_articles_details
(
tard_ean_code
BIGINT (20) без знака НЕ NULL, то
tard_provider_reference
BIGINT (20) без знака УМОЛЧАНИЮ NULL, то
tard_status
TINYINT (3) без знака NOT NULL DEFAULT '0',
PRIMARY KEY (tard_ean_code
)
KEYidx_status
(tard_status
)
) ДВИГАТЕЛЬ = MyISAM DEFAULT CHARSET = utf8
в рамках задачи обновления данных, мы соединяем эти две таблицы по "ard_ean_code & tard_ean_code" и обновление существующие строки в главной таблице со значениями из временной таблицы и вставлять новые строки в мастер из временной таблицы. Но для этих обновлений данных требуется слишком много времени для вставки/обновления данных из временной таблицы в главную таблицу.
Есть ли какая-либо настройка, которую мне нужно сделать, чтобы улучшить производительность?
Спасибо.
Этот вопрос является слишком общим, чтобы получить правильный ответ. Вы можете замедлить работу, если вы читаете строки один за другим (по сравнению с каждым за раз), или если вы предпочитаете отдельные вставки (или несколько вложений) или выполняете манипуляции с вашего (медленного) языка клиента ... –
Извините за не включая подробную информацию в моем первом сообщении. Я включил необходимую информацию. – Niranjan