智能刊登gaussdb 慢sql top 10
In 子查询元素大于10
2.解决方案
语句优化建议:
发现IN表达式包含元素超过10,请慎用,因为元素过多会导致全表扫描。
建议按《sql优化军规》改为临时表后join
3.原sql
SELECT `CustomerId`, `MarketId`, `SiteCode`, `CategoryId`, `AttributeId`
, `AttributeName`, `AttributeValueId`, `AttributeValue`, `IsRequired`, `ShowTypeValue`
, `LastModifierId`, `LastModifier`, `LastModificationTime`, `CreatorId`, `Creator`
, `CreationTime`, `Id`
FROM `Sys_MarketAttribute_Default`
WHERE `CustomerId` = 1
AND `MarketId` = 57
AND `CategoryId` IN (200001438, 100003251, 200218145, 100003290, 200003757, 130184, 151412, 127888008, 200003781, 154104, 100004472, 100003329, 200251142, 151407, 200001461, 100003248, 100003328, 200003756, 100003252, 152601, 100003308, 100001780, 152104, 371101, 371105, 200223143, 40512, 100003291, 200250143, 100003058, 152205, 200044148, 100003255, 200044145, 154102, 100001826, 200223144, 15230501, 200297145, 200220143, 100003316, 100005735, 200352146, 200353145, 100003235, 200376146, 200001773, 100001809, 152212, 1343, 200090143, 200379142, 200302142, 200003723, 200042147, 39050502, 200297144, 127808008, 200003741, 100003327, 100003880, 100003249, 100003265, 200349146, 329, 200355150, 1466)