1
Может кто-то помочь мне изменения в этом запросекак избежать полного сканирования таблицы для моего запроса MySQL
UPDATE APA_Pended_Demand
SET APA_Pended_Demand.genericDemandId=(
SELECT APA_Generic_Demand_Details.genericDemandId
FROM APA_Generic_Demand_Details
WHERE APA_Generic_Demand_Details.demandID=APA_Pended_Demand.demandID
AND APA_Pended_Demand.isPend = 1
AND APA_Generic_Demand_Details.genericDemandId != ''
AND APA_Generic_Demand_Details.genericDemandId IS NOT NULL
AND APA_Pended_Demand.reactivateDate > UTC_TIMESTAMP()
AND APA_Generic_Demand_Details.status < 300
AND APA_Pended_Demand.ID BETWEEN 1 AND 10000
Индексация приведены для таблицы
PRIMARY KEY (`id`),
KEY `apgnricdemnddetils_bndnresn` (`abandonReason`),
KEY `apgnricdmnddetils_prdcttype` (`productType`),
KEY `apgnricdmnddtils_srcereqrle` (`sourceReqRole`),
KEY `apgnericdemnddetils_methdin` (`methodIn`),
KEY `IX1_APA_Generic_Demand_Details` (`status`,`customerReference`,`policyNo`,`genericDemandId`) USING BTREE,
KEY `IX2_APA_Generic_Demand_Details` (`status`,`schemeReference`,`genericDemandId`) USING BTREE,
KEY `IX3_APA_Generic_Demand_Details` (`status`,`aggregationKey`,`genericDemandId`) USING BTREE,
KEY `IX4_APA_Generic_Demand_Details` (`status`,`initiator`,`aggregationKey`,`genericDemandId`) USING BTREE,
KEY `IX5_APA_Generic_Demand_Details` (`status`,`policyNo`,`genericDemandId`) USING BTREE,
KEY `IX7_APA_Generic_Demand_Details` (`genericDemandId`) USING BTREE,
KEY `IX8_APA_Generic_Demand_Details` (`initiator`,`status`) USING BTREE,
Запрос не использует индекс . Я попытался объяснить для запроса, и он показывает тип как Все и ключи как Нет. Так или иначе, чтобы заставить его использовать индекс или нам нужно изменить запрос?
Привет Тим, Большое спасибо – Chowdary
@sravan Есть ли причина, почему вы удалили это как правильный ответ? –