数据库:zhcxkj-center-warehouse
查询时间:15.2868
执行次数: 87
扫描行数:1304400
发送行数:761.965
指纹SQL: SELECT a . id , a . customer_id , a . warehouse_id , a . p_code , a . list_no , a . sku , b . single_detail_id , b . need_to_pack_type , a . single_no , a . courier_num , a . receipt_time , a . receipt_time_type , a . receipt_admin_Id , a . receipt_user_name , a . is_priority_storage , a . add_time , a . add_user_id , a . add_user_name , c . box_no , c . source_type , c . task_state , c . actual_buy_num , c . buy_time , c . buy_admin_id , c . buy_user_name , c . process_num , c . process_time , c . process_admin_id , c . process_user_name , c . check_num , c . check_time , c . check_admin_id , c . check_user_name , c . tally_num , c . tally_time , c . tally_admin_id , c . tally_user_name , c . bad_num , c . put_in_num , c . put_in_time , c . put_in_admin_id , c . put_in_user_name , c . is_return_to_good , c . receive_and_delivery_num , c . surplus_num , c . task_no , c . put_task_detail_id , c . loss_num , c . process_scan_time , c . is_changed , c . old_box_no , c . initial_bad_num , c . re_check_bad_num , c . re_check_user_id , c . re_check_time , c . re_check_user_name , c . bad_check_type , c . put_in_area_id , c . put_in_area_name , c . put_in_position_id , c . put_in_position_code , a . recommend_area_id , a . recommend_area_name , d . prepare_buy_time , d . prepare_buy_admin_id , d . prepare_buy_user_name , c . return_good_box_no , c . abnormal_num , c . abnormal_user_id , c . abnormal_user_name , c . abnormal_time , c . abnormal_node , c . is_abnormal , c . abnormal_return_num , c . abnormal_return_user_id , c . abnormal_return_name , c . abnormal_return_time , c . is_two_tally , c . two_tally_num , c . two_tally_admin_id , c . two_tally_user_name , c . two_tally_time , c . is_package_optimize , c . is_quality_optimize FROM ? a LEFT JOIN t_stk_procurement_detail_buylist_detail b ON a . buy_detail_id = b . id AND a . customer_id = b . customer_id LEFT JOIN t_stk_receiptandstorage_detail c ON a . id = c . order_buy_id AND a . cu
真实SQL:SELECT a.id, a.customer_id, a.warehouse_id, a.p_code, a.list_no, a.sku, b.single_detail_id, b.need_to_pack_type, a.single_no, a.courier_num, a.receipt_time, a.receipt_time_type, a.receipt_admin_Id, a.receipt_user_name, a.is_priority_storage, a.add_time, a.add_user_id, a.add_user_name, c.box_no, c.source_type, c.task_state, c.actual_buy_num, c.buy_time, c.buy_admin_id, c.buy_user_name, c.process_num, c.process_time, c.process_admin_id, c.process_user_name, c.check_num, c.check_time, c.check_admin_id, c.check_user_name, c.tally_num, c.tally_time, c.tally_admin_id, c.tally_user_name, c.bad_num, c.put_in_num, c.put_in_time, c.put_in_admin_id, c.put_in_user_name, c.is_return_to_good, c.receive_and_delivery_num, c.surplus_num, c.task_no, c.put_task_detail_id, c.loss_num, c.process_scan_time, c.is_changed, c.old_box_no, c.initial_bad_num, c.re_check_bad_num, c.re_check_user_id, c.re_check_time, c.re_check_user_name, c.bad_check_type, c.put_in_area_id, c.put_in_area_name, c.put_in_position_id, c.put_in_position_code, a.recommend_area_id, a.recommend_area_name, d.prepare_buy_time, d.prepare_buy_admin_id, d.prepare_buy_user_name, c.return_good_box_no, c.abnormal_num, c.abnormal_user_id, c.abnormal_user_name, c.abnormal_time, c.abnormal_node, c.is_abnormal, c.abnormal_return_num, c.abnormal_return_user_id, c.abnormal_return_name, c.abnormal_return_time, c.is_two_tally, c.two_tally_num, c.two_tally_admin_id, c.two_tally_user_name, c.two_tally_time, c.is_package_optimize, c.is_quality_optimize FROM t_stk_procurement_detail_orderbuy a LEFT JOIN t_stk_procurement_detail_buylist_detail b ON a.buy_detail_id = b.id AND a.customer_id = b.customer_id LEFT JOIN t_stk_receiptandstorage_detail c ON a.id = c.order_buy_id AND a.customer_id = c.customer_id LEFT JOIN t_stk_receiptandstorage_couriernum d ON a.courier_num = d.courier_num AND a.customer_id = d.customer_id WHERE (c.buy_time >= 2025-11-01 21:00:00 AND 2025-11-02 23:59:59 >=c.buy_time ) order by a.id desc limit 0,1000;
无人工修改
AISQL修改建议:SELECT a.id, a.customer_id, a.warehouse_id, a.p_code, a.list_no, a.sku,
b.single_detail_id, b.need_to_pack_type, a.single_no, a.courier_num,
a.receipt_time, a.receipt_time_type, a.receipt_admin_Id, a.receipt_user_name,
a.is_priority_storage, a.add_time, a.add_user_id, a.add_user_name,
c.box_no, c.source_type, c.task_state, c.actual_buy_num, c.buy_time,
c.buy_admin_id, c.buy_user_name, c.process_num, c.process_time,
c.process_admin_id, c.process_user_name, c.check_num, c.check_time,
c.check_admin_id, c.check_user_name, c.tally_num, c.tally_time,
c.tally_admin_id, c.tally_user_name, c.bad_num, c.put_in_num,
c.put_in_time, c.put_in_admin_id, c.put_in_user_name, c.is_return_to_good,
c.receive_and_delivery_num, c.surplus_num, c.task_no, c.put_task_detail_id,
c.loss_num, c.process_scan_time, c.is_changed, c.old_box_no,
c.initial_bad_num, c.re_check_bad_num, c.re_check_user_id, c.re_check_time,
c.re_check_user_name, c.bad_check_type, c.put_in_area_id, c.put_in_area_name,
c.put_in_position_id, c.put_in_position_code, a.recommend_area_id,
a.recommend_area_name, d.prepare_buy_time, d.prepare_buy_admin_id,
d.prepare_buy_user_name, c.return_good_box_no, c.abnormal_num,
c.abnormal_user_id, c.abnormal_user_name, c.abnormal_time, c.abnormal_node,
c.is_abnormal, c.abnormal_return_num, c.abnormal_return_user_id,
c.abnormal_return_name, c.abnormal_return_time, c.is_two_tally,
c.two_tally_num, c.two_tally_admin_id, c.two_tally_user_name,
c.two_tally_time, c.is_package_optimize, c.is_quality_optimize
FROM t_stk_procurement_detail_orderbuy a
STRAIGHT_JOIN t_stk_receiptandstorage_detail c ON a.id = c.order_buy_id
AND a.customer_id = c.customer_id
AND c.buy_time BETWEEN 2025-11-01 21:00:00 AND 2025-11-02 23:59:59
LEFT JOIN t_stk_procurement_detail_buylist_detail b ON a.buy_detail_id = b.id
AND a.customer_id = b.customer_id
LEFT JOIN t_stk_receiptandstorage_couriernum d ON a.courier_num = d.courier_num
AND a.customer_id = d.customer_id
ORDER BY a.id DESC
LIMIT 1000;
explain表:
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | SIMPLE | c | None | ALL | idx_orderbuyid_taskstate,idx_customer_id_task_state_order_buy_id,idx_orderbuyid_taskstate_boxno,idx_orderbuyid_customerid_checktime,idx_orderbuyid_customerid_processtime,idx_orderbuyid_customerid_putintime,idx_orderbuyid_customerid_buytime,idx_orderbuyid_customerid_addtime,idx_order_buy_task,idx_orderbuyid_customerid_tallytime,idx_orderbuyid_customerid_abnormalreturntime,idx_orderbuyid_customerid_abnormaltime | None | None | None | 1292049 | 11.11 | Using where; Using temporary; Using filesort |
| 1 | SIMPLE | a | None | eq_ref | PRIMARY,idx_customer_addtime,idx_buy_detail_id_order_list_id | PRIMARY | 8 | zhcxkj-center-warehouse.c.order_buy_id | 1 | 10 | Using where |
| 1 | SIMPLE | d | None | eq_ref | idx_couriernum,idx_couriernum_customerid,idx_couriernum_customerid_preparebuyadminid | idx_couriernum | 2003 | zhcxkj-center-warehouse.a.courier_num | 1 | 100 | Using where |
| 1 | SIMPLE | b | None | eq_ref | PRIMARY,idx_id,idx_id_singledetailid,idx_id_actualbuynum | PRIMARY | 12 | zhcxkj-center-warehouse.a.buy_detail_id,zhcxkj-center-warehouse.a.customer_id | 1 | 100 | None |
额外建议:
索引建议:join联表查询,on关联字段必须增加索引!
需要添加索引:ALTER TABLE t_stk_procurement_detail_orderbuy ADD INDEX idx_courier_num(courier_num);
【t_stk_procurement_detail_orderbuy】表 【courier_num】字段,索引分析:
+--------------+--------------+---------------+---------------+
| TABLE_NAME | INDEX_NAME | COLUMN_NAME | CARDINALITY |
+==============+==============+===============+===============+
+--------------+--------------+---------------+---------------+
→ 【t_stk_receiptandstorage_detail】表 【buy_time】字段,索引已经存在,无需添加任何索引。
【t_stk_receiptandstorage_detail】表 【buy_time】字段,索引分析:
+--------------------------------+--------------------------------+---------------+---------------+
| TABLE_NAME | INDEX_NAME | COLUMN_NAME | CARDINALITY |
+================================+================================+===============+===============+
| t_stk_receiptandstorage_detail | idx_orderbuyid_customerid_buyt | buy_time | 1280212 |
| | ime | | |
+--------------------------------+--------------------------------+---------------+---------------+
→ 【t_stk_procurement_detail_orderbuy】表 【id】字段,索引已经存在,无需添加任何索引。
【t_stk_procurement_detail_orderbuy】表 【id】字段,索引分析:
+--------------------------------+--------------+---------------+---------------+
| TABLE_NAME | INDEX_NAME | COLUMN_NAME | CARDINALITY |
+================================+==============+===============+===============+
| t_stk_procurement_detail_order | PRIMARY | id | 1191351 |
| buy | | | |
+--------------------------------+--------------+---------------+---------------+
→ 【t_stk_receiptandstorage_couriernum】 表,无需添加任何索引。
→ 【t_stk_procurement_detail_buylist_detail】 表,无需添加任何索引。