1.问题分析
华为GAUSSDB 智能刊登 7.26日 11:50 到7.25日 15:00 2个读节点cpu 100%,
分析发现有大量的In 子查询 且子查询元素为‘’,导致全表扫描,cpu 100%
2.解决方案
判断in 查询参数若为‘’,则不传入空参数
ParentId` IN ('', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '')
紧急修改代码后,发布,线上读节点cpu 立即 降低 10%
3.原sql
SELECT `Sku` AS `Sku`, `ParentId` AS `ParentId`
FROM `Product`
WHERE `CustomerId` = 1
AND `ParentId` IN ('', '')
AND `IsMainVariant` = 1;
SELECT `Sku` AS `Sku`, `ParentId` AS `ParentId`
FROM `Product`
WHERE `CustomerId` = 1
AND `ParentId` IN ('', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '')
4. 次问题胡笑峰已解决,此处作记录,后面有这种问题参照处理