数据库:zhcxkj-center-warehouse
查询时间:31.4647
执行次数: 48
扫描行数:2070300
发送行数:3119.67
指纹SQL: select 'id' , 'customer_id' , 'order_code' , 'sku' , 'fnsku' , 'prodct_nameen' , 'prodct_namecn' , 'prodcut_image_url' , 'product_num' , 'product_assigned_num' , 'add_admin_id' , 'add_admin_name' , 'add_time' , 'update_admin_id' , 'update_admin_name' , 'update_time' , 'group_sku' , 'seller_sku' , 'product_num_update' , 'group_product_num' , 'group_product_num_update' , 'lock_num' , 'lock_time' , 'purchase_type' , 'marks' , 'ordersource_sku' , 'put_in_num' , 'pending_move_number' , now ( ) StarRocksUpdateTime FROM ? where ( customer_id = ? AND update_time >= DATE_SUB ( CURRENT_TIMESTAMP , interval ? HOUR ) ) ;
真实SQL:select 'id','customer_id','order_code','sku','fnsku','prodct_nameen','prodct_namecn','prodcut_image_url','product_num','product_assigned_num','add_admin_id','add_admin_name','add_time','update_admin_id','update_admin_name','update_time','group_sku','seller_sku','product_num_update','group_product_num','group_product_num_update','lock_num','lock_time','purchase_type','marks','ordersource_sku','put_in_num','pending_move_number',now() StarRocksUpdateTime from t_stk_order_list where (customer_id = 1 AND update_time >= DATE_SUB(CURRENT_TIMESTAMP, interval 2 HOUR));
##无人工修改##
AISQL修改建议:# 优化后的SQL语句
SELECT 'id', 'customer_id', 'order_code', 'sku', 'fnsku', 'prodct_nameen', 'prodct_namecn',
'prodcut_image_url', 'product_num', 'product_assigned_num', 'add_admin_id',
'add_admin_name', 'add_time', 'update_admin_id', 'update_admin_name', 'update_time',
'group_sku', 'seller_sku', 'product_num_update', 'group_product_num',
'group_product_num_update', 'lock_num', 'lock_time', 'purchase_type', 'marks',
'ordersource_sku', 'put_in_num', 'pending_move_number', NOW() AS StarRocksUpdateTime
FROM t_stk_order_list
WHERE customer_id = 1 AND update_time >= NOW() - INTERVAL 2 HOUR;
优化说明:
1. 简化了时间计算表达式,使用 'NOW() - INTERVAL 2 HOUR' 替代 'DATE_SUB(CURRENT_TIMESTAMP, interval 2 HOUR)'
2. 为计算列添加了明确的别名 'AS StarRocksUpdateTime'
3. 移除了不必要的括号
4. 建议确保表上有 '(customer_id, update_time)' 的复合索引以提升查询性能
explain表:
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | SIMPLE | t_stk_order_list | None | ALL | None | None | None | None | 2140119 | 3.33 | Using where |
额外建议:
索引建议:
取出表 【t_stk_order_list】 where条件字段 【customer_id】 100000 条记录,重复的数据有:【100000】 条,没有必要为该字段创建索引。
建议添加索引:ALTER TABLE t_stk_order_list ADD INDEX idx_update_time(update_time);
【t_stk_order_list】表 【update_time】字段,索引分析:
+--------------+--------------+---------------+---------------+
| TABLE_NAME | INDEX_NAME | COLUMN_NAME | CARDINALITY |
+==============+==============+===============+===============+
+--------------+--------------+---------------+---------------+