Mysql

MySQL - 簡單更新非常慢並且導致大量伺服器的高負載平均

  • March 16, 2022

簡單的更新非常慢並且導致大量伺服器的高負載平均:

表名

CREATE TABLE IF NOT EXISTS `LISTE_PROMOTION3` (
 `id_list_prom` int(11) NOT NULL AUTO_INCREMENT,
 `id_hotel` int(11) NOT NULL,
 `id_marche` int(11) NOT NULL,
 `lib_promo` varchar(250) NOT NULL,
 `etat_promo` enum('T','F') NOT NULL DEFAULT 'T',
 `type_promo` varchar(250) NOT NULL,
 `debut_vente` date NOT NULL,
 `fin_vente` date NOT NULL,
 `debut_sejour` date NOT NULL,
 `fin_sejour` date NOT NULL,
 `min_sty` int(11) NOT NULL,
 `max_sty` int(11) NOT NULL,
 `free_night` int(11) NOT NULL,
 `type_free_night` varchar(250) NOT NULL,
 `priorite_promo` int(11) NOT NULL,
 `typ_prom` varchar(250) NOT NULL,
 `pourcent_red_lpd` float NOT NULL,
 `pourcent_red_dp` float NOT NULL,
 `pourcent_red_dpplus` float NOT NULL,
 `pourcent_red_pc` float NOT NULL,
 `pourcent_red_pcplus` float NOT NULL,
 `pourcent_red_aisoft` float NOT NULL,
 `pourcent_red_allin` float NOT NULL,
 `pourcent_red_ultraai` float NOT NULL,
 `montant_red_lpd` float NOT NULL,
 `montant_red_dp` float NOT NULL,
 `montant_red_dpplus` float NOT NULL,
 `montant_red_pc` float NOT NULL,
 `montant_red_pcplus` float NOT NULL,
 `montant_red_aisoft` float NOT NULL,
 `montant_red_allin` float NOT NULL,
 `montant_red_ultraai` float NOT NULL,
 `id_agent` int(11) NOT NULL,
 `date_insertion` datetime NOT NULL,
 `date_modif` datetime NOT NULL,
 `id_agent_modif` int(11) NOT NULL,
 `typ_app_prom` varchar(250) NOT NULL,
 `sur_tarif` varchar(250) NOT NULL,
 `pourcent_red_ls` float NOT NULL,
 `montant_red_ls` float NOT NULL,
 PRIMARY KEY (`id_list_prom`),
 KEY `id_hotel` (`id_hotel`),
 KEY `etat_promo` (`etat_promo`),
 KEY `fin_vente` (`fin_vente`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=9480 ;

該表包含 9480 行。

詢問:

UPDATE `LISTE_PROMOTION` SET `etat_promo` = 'T' WHERE `id_list_prom` = 9460;

此查詢更新 1 行,大約需要 25 秒才能完成,並導致大量伺服器的高負載平均。

擺脫標誌 ( etat_promo) 上的索引。優化器幾乎從不使用此類;它會更喜歡進行表掃描。如果您有一些您認為可能正在使用該索引的查詢,請執行並向EXPLAIN我們展示該查詢以供進一步討論。

解釋更新LISTE_PROMOTIONetat_promo= ‘T’ WHERE id_list_prom= 9460;

在此處輸入圖像描述

引用自:https://dba.stackexchange.com/questions/210171