智能刊登gaussdb 慢sql top 10
分析诊断后提示,缺少索引:导致全表扫描
索引优化建议:
ALTER TABLE `irobotbox_marketpublish`.`ap_autopublish_aliexpress_queue` ADD INDEX `idx_Status_CustomerId_Time` (`Status`, `CustomerId`, `Time`)
建议在数据表 irobotbox_marketpublish.ap_autopublish_allegro_queue 的 Status,CustomerId,Time 列上添加如下索引,以提高查询性能:
ALTER TABLE `irobotbox_marketpublish`.`ap_autopublish_allegro_queue` ADD INDEX `idx_Status_CustomerId_Time` (`Status`, `CustomerId`, `Time`)
建议在数据表 irobotbox_marketpublish.ap_autopublish_lazada_queue 的 Status,CustomerId,Time 列上添加如下索引,以提高查询性能:
ALTER TABLE `irobotbox_marketpublish`.`ap_autopublish_lazada_queue` ADD INDEX `idx_Status_CustomerId_Time` (`Status`, `CustomerId`, `Time`)
建议在数据表 irobotbox_marketpublish.ap_autopublish_wish_queue 的 Status,CustomerId,Time 列上添加如下索引,以提高查询性能:
ALTER TABLE `irobotbox_marketpublish`.`ap_autopublish_wish_queue` ADD INDEX `idx_Status_CustomerId_Time` (`Status`, `CustomerId`, `Time`)
建议在数据表 irobotbox_marketpublish.ap_autopublish_ebay_queue 的 Status,CustomerId,Time 列上添加如下索引,以提高查询性能:
ALTER TABLE `irobotbox_marketpublish`.`ap_autopublish_ebay_queue` ADD INDEX `idx_Status_CustomerId_Time` (`Status`, `CustomerId`, `Time`)
建议在数据表 irobotbox_marketpublish.ap_autopublish_amazon_queue 的 Status,CustomerId,Time 列上添加如下索引,以提高查询性能:
ALTER TABLE `irobotbox_marketpublish`.`ap_autopublish_amazon_queue` ADD INDEX `idx_Status_CustomerId_Time` (`Status`, `CustomerId`, `Time`)
建议在数据表 irobotbox_marketpublish.ap_autopublish_mercadolibre_queue 的 Status,CustomerId,Time 列上添加如下索引,以提高查询性能:
ALTER TABLE `irobotbox_marketpublish`.`ap_autopublish_mercadolibre_queue` ADD INDEX `idx_Status_CustomerId_Time` (`Status`, `CustomerId`, `Time`)
建议在数据表 irobotbox_marketpublish.ap_autopublish_kogan_queue 的 Status,CustomerId,Time 列上添加如下索引,以提高查询性能:
ALTER TABLE `irobotbox_marketpublish`.`ap_autopublish_kogan_queue` ADD INDEX `idx_Status_CustomerId_Time` (`Status`, `CustomerId`, `Time`)
建议在数据表 irobotbox_marketpublish.ap_autopublish_shopeev2_queue 的 Status,CustomerId,Time 列上添加如下索引,以提高查询性能:
ALTER TABLE `irobotbox_marketpublish`.`ap_autopublish_shopeev2_queue` ADD INDEX `idx_Status_CustomerId_Time` (`Status`, `CustomerId`, `Time`)
建议在数据表 irobotbox_marketpublish.ap_autopublish_cdiscount_queue 的 Status,CustomerId,Time 列上添加如下索引,以提高查询性能:
ALTER TABLE `irobotbox_marketpublish`.`ap_autopublish_cdiscount_queue` ADD INDEX `idx_Status_CustomerId_Time` (`Status`, `CustomerId`, `Time`)
建议在数据表 irobotbox_marketpublish.sys_ordersource 的 OrderSourceId,OrderSourceName 列上添加如下索引,以提高查询性能:
ALTER TABLE `irobotbox_marketpublish`.`sys_ordersource` ADD INDEX `idx_OrderSourceId_OrderSourceName` (`OrderSourceId`, `OrderSourceName`)
注意:在业务高峰期,变更表结构存在风险,请谨慎操作!
2.解决方案
已在中午12:00-14:00业务空闲时段添加索引
3.原sql
, a.OrderSourceId, c.OrderSourceName, a.SellerSku, a.FailureReason, a.Time
FROM (
SELECT StrategyId, MarketId, Id, Sku, SiteCode
, OrderSourceId, SellerSku, FailureReason, TIME
FROM ap_autopublish_aliexpress_queue
WHERE TIME > DATE_ADD(CURDATE(), INTERVAL -1 DAY)
AND TIME < CURDATE()
AND `Status` = 'failure'
AND customerid = 1
UNION ALL
SELECT StrategyId, MarketId, Id, Sku, SiteCode
, OrderSourceId, SellerSku, FailureReason, TIME
FROM ap_autopublish_allegro_queue
WHERE TIME > DATE_ADD(CURDATE(), INTERVAL -1 DAY)
AND TIME < CURDATE()
AND `Status` = 'failure'
AND customerid = 1
UNION ALL
SELECT StrategyId, MarketId, Id, Sku, SiteCode
, OrderSourceId, SellerSku, FailureReason, TIME
FROM ap_autopublish_amazon_queue
WHERE TIME > DATE_ADD(CURDATE(), INTERVAL -1 DAY)
AND TIME < CURDATE()
AND `Status` = 'failure'
AND customerid = 1
UNION ALL
SELECT StrategyId, MarketId, Id, Sku, SiteCode
, OrderSourceId, SellerSku, FailureReason, TIME
FROM ap_autopublish_cdiscount_queue
WHERE TIME > DATE_ADD(CURDATE(), INTERVAL -1 DAY)
AND TIME < CURDATE()
AND `Status` = 'failure'
AND customerid = 1
UNION ALL
SELECT StrategyId, MarketId, Id, Sku, SiteCode
, OrderSourceId, SellerSku, FailureReason, TIME
FROM ap_autopublish_ebay_queue
WHERE TIME > DATE_ADD(CURDATE(), INTERVAL -1 DAY)
AND TIME < CURDATE()
AND `Status` = 'failure'
AND customerid = 1
UNION ALL
SELECT StrategyId, MarketId, Id, Sku, SiteCode
, OrderSourceId, SellerSku, FailureReason, TIME
FROM ap_autopublish_jdid_queue
WHERE TIME > DATE_ADD(CURDATE(), INTERVAL -1 DAY)
AND TIME < CURDATE()
AND `Status` = 'failure'
AND customerid = 1
UNION ALL
SELECT StrategyId, MarketId, Id, Sku, SiteCode
, OrderSourceId, SellerSku, FailureReason, TIME
FROM ap_autopublish_joom_queue
WHERE TIME > DATE_ADD(CURDATE(), INTERVAL -1 DAY)
AND TIME < CURDATE()
AND `Status` = 'failure'
AND customerid = 1
UNION ALL
SELECT StrategyId, MarketId, Id, Sku, SiteCode
, OrderSourceId, SellerSku, FailureReason, TIME
FROM ap_autopublish_jumia_queue
WHERE TIME > DATE_ADD(CURDATE(), INTERVAL -1 DAY)
AND TIME < CURDATE()
AND `Status` = 'failure'
AND customerid = 1
UNION ALL
SELECT StrategyId, MarketId, Id, Sku, SiteCode
, OrderSourceId, SellerSku, FailureReason, TIME
FROM ap_autopublish_kogan_queue
WHERE TIME > DATE_ADD(CURDATE(), INTERVAL -1 DAY)
AND TIME < CURDATE()
AND `Status` = 'failure'
AND customerid = 1
UNION ALL
SELECT StrategyId, MarketId, Id, Sku, SiteCode
, OrderSourceId, SellerSku, FailureReason, TIME
FROM ap_autopublish_lazada_queue
WHERE TIME > DATE_ADD(CURDATE(), INTERVAL -1 DAY)
AND TIME < CURDATE()
AND `Status` = 'failure'
AND customerid = 1
UNION ALL
SELECT StrategyId, MarketId, Id, Sku, SiteCode
, OrderSourceId, SellerSku, FailureReason, TIME
FROM ap_autopublish_mercadolibre_queue
WHERE TIME > DATE_ADD(CURDATE(), INTERVAL -1 DAY)
AND TIME < CURDATE()
AND `Status` = 'failure'
AND customerid = 1
UNION ALL
SELECT StrategyId, MarketId, Id, Sku, SiteCode
, OrderSourceId, SellerSku, FailureReason, TIME
FROM ap_autopublish_newegg_queue
WHERE TIME > DATE_ADD(CURDATE(), INTERVAL -1 DAY)
AND TIME < CURDATE()
AND `Status` = 'failure'
AND customerid = 1
UNION ALL
SELECT StrategyId, MarketId, Id, Sku, SiteCode
, OrderSourceId, SellerSku, FailureReason, TIME
FROM ap_autopublish_realde_queue
WHERE TIME > DATE_ADD(CURDATE(), INTERVAL -1 DAY)
AND TIME < CURDATE()
AND `Status` = 'failure'
AND customerid = 1
UNION ALL
SELECT StrategyId, MarketId, Id, Sku, SiteCode
, OrderSourceId, SellerSku, FailureReason, TIME
FROM ap_autopublish_shopeev2_queue
WHERE TIME > DATE_ADD(CURDATE(), INTERVAL -1 DAY)
AND TIME < CURDATE()
AND `Status` = 'failure'
AND customerid = 1
UNION ALL
SELECT StrategyId, MarketId, Id, Sku, SiteCode
, OrderSourceId, SellerSku, FailureReason, TIME
FROM ap_autopublish_tophatter_queue
WHERE TIME > DATE_ADD(CURDATE(), INTERVAL -1 DAY)
AND TIME < CURDATE()
AND `Status` = 'failure'
AND customerid = 1
UNION ALL
SELECT StrategyId, MarketId, Id, Sku, SiteCode
, OrderSourceId, SellerSku, FailureReason, TIME
FROM ap_autopublish_vova_queue
WHERE TIME > DATE_ADD(CURDATE(), INTERVAL -1 DAY)
AND TIME < CURDATE()
AND `Status` = 'failure'
AND customerid = 1
UNION ALL
SELECT StrategyId, MarketId, Id, Sku, SiteCode
, OrderSourceId, SellerSku, FailureReason, TIME
FROM ap_autopublish_walmart_queue
WHERE TIME > DATE_ADD(CURDATE(), INTERVAL -1 DAY)
AND TIME < CURDATE()
AND `Status` = 'failure'
AND customerid = 1
UNION ALL
SELECT StrategyId, MarketId, Id, Sku, SiteCode
, OrderSourceId, SellerSku, FailureReason, TIME
FROM ap_autopublish_wayfair_queue
WHERE TIME > DATE_ADD(CURDATE(), INTERVAL -1 DAY)
AND TIME < CURDATE()
AND `Status` = 'failure'
AND customerid = 1
UNION ALL
SELECT StrategyId, MarketId, Id, Sku, SiteCode
, OrderSourceId, SellerSku, FailureReason, TIME
FROM ap_autopublish_wish_queue
WHERE TIME > DATE_ADD(CURDATE(), INTERVAL -1 DAY)
AND TIME < CURDATE()
AND `Status` = 'failure'
AND customerid = 1
) a
LEFT JOIN sys_market b ON a.MarketId = b.MarketId
LEFT JOIN sys_ordersource c ON a.OrderSourceId = c.OrderSourceId
WHERE a.Time >= DATE_ADD(CURDATE(), INTERVAL -1 DAY)
AND a.Time < CURDATE()
ORDER BY a.Time DESC