重现步骤
反馈人:袁慧斌
数据库: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】 表,无需添加任何索引。


历史记录  
  1. 2025-11-05 11:03:33, 由 陈莉珍 创建。
  2. 2025-11-05 11:42:30, 由 程伟 指派给 谢业福。
    修改了 指派给,旧值为 "chengwei",新值为 "xieyefu"。
  3. 2025-11-05 11:44:55, 由 谢业福 解决,方案为 性能问题 。
    修改了 解决方案,旧值为 "",新值为 "performance"。
    修改了 解决版本,旧值为 "",新值为 "trunk"。
    修改了 解决日期,旧值为 "",新值为 "2025-11-05 11:44:43"。
    修改了 指派给 ,旧值为 "xieyefu",新值为 "chenlizhen"。
    修改了 Bug状态 ,旧值为 "active",新值为 "resolved"。
    修改了 是否确认,旧值为 "0",新值为 "1"。
    修改了 解决者 ,旧值为 "",新值为 "xieyefu"。
    已添加
  4. 2025-11-05 13:34:51, 由 陈莉珍 编辑。
    修改了 所属模块 ,旧值为 "0",新值为 "1933"。
    修改了 优先级 ,旧值为 "2",新值为 "3"。
    修改了 业务部门 ,旧值为 "0",新值为 "2"。
    修改了 开发责任人,旧值为 "",新值为 "xieyefu"。
    修改了 测试责任人,旧值为 "",新值为 "liuchao"。
    修改了 解决时效 ,旧值为 "0",新值为 "0.69"。
    修改了 重现步骤 ,区别为:
    001- 反馈人:袁慧斌
    001+ 反馈人:袁慧斌 数据库: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
    002- 数据库:zhcxkj-center-warehouse
    002+ select_type
    003- 查询时间:15.2868
    003+ table
    004- 执行次数: 87
    004+ partitions
    005- 扫描行数:1304400
    005+ type
    006- 发送行数:761.965
    006+ possible_keys
    007- 指纹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
    007+ key
    008- 真实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;
    008+ key_len
    009- 无人工修改
    009+ ref
    010- AISQL修改建议:SELECT a.id, a.customer_id, a.warehouse_id, a.p_code, a.list_no, a.sku,
    010+ rows
    011- b.single_detail_id, b.need_to_pack_type, a.single_no, a.courier_num,
    011+ filtered
    012- a.receipt_time, a.receipt_time_type, a.receipt_admin_Id, a.receipt_user_name,
    012+ Extra
    013- a.is_priority_storage, a.add_time, a.add_user_id, a.add_user_name,
    013+ 1
    014- c.box_no, c.source_type, c.task_state, c.actual_buy_num, c.buy_time,
    014+ SIMPLE
    015- c.buy_admin_id, c.buy_user_name, c.process_num, c.process_time,
    015+ c
    016- c.process_admin_id, c.process_user_name, c.check_num, c.check_time,
    016+ None
    017- c.check_admin_id, c.check_user_name, c.tally_num, c.tally_time,
    017+ ALL
    018- c.tally_admin_id, c.tally_user_name, c.bad_num, c.put_in_num,
    018+ 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
    019- c.put_in_time, c.put_in_admin_id, c.put_in_user_name, c.is_return_to_good,
    019+ None
    020- c.receive_and_delivery_num, c.surplus_num, c.task_no, c.put_task_detail_id,
    020+ None
    021- c.loss_num, c.process_scan_time, c.is_changed, c.old_box_no,
    021+ None
    022- c.initial_bad_num, c.re_check_bad_num, c.re_check_user_id, c.re_check_time,
    022+ 1292049
    023- c.re_check_user_name, c.bad_check_type, c.put_in_area_id, c.put_in_area_name,
    023+ 11.11
    024- c.put_in_position_id, c.put_in_position_code, a.recommend_area_id,
    024+ Using where; Using temporary; Using filesort
    025- a.recommend_area_name, d.prepare_buy_time, d.prepare_buy_admin_id,
    025+ 1
    026- d.prepare_buy_user_name, c.return_good_box_no, c.abnormal_num,
    026+ SIMPLE
    027- c.abnormal_user_id, c.abnormal_user_name, c.abnormal_time, c.abnormal_node,
    027+ a
    028- c.is_abnormal, c.abnormal_return_num, c.abnormal_return_user_id,
    028+ None
    029- c.abnormal_return_name, c.abnormal_return_time, c.is_two_tally,
    029+ eq_ref
    030- c.two_tally_num, c.two_tally_admin_id, c.two_tally_user_name,
    030+ PRIMARY,idx_customer_addtime,idx_buy_detail_id_order_list_id
    031- c.two_tally_time, c.is_package_optimize, c.is_quality_optimize
    031+ PRIMARY
    032- FROM t_stk_procurement_detail_orderbuy a
    032+ 8
    033- STRAIGHT_JOIN t_stk_receiptandstorage_detail c ON a.id = c.order_buy_id
    033+ zhcxkj-center-warehouse.c.order_buy_id
    034- AND a.customer_id = c.customer_id
    034+ 1
    035- AND c.buy_time BETWEEN 2025-11-01 21:00:00 AND 2025-11-02 23:59:59
    035+ 10
    036- LEFT JOIN t_stk_procurement_detail_buylist_detail b ON a.buy_detail_id = b.id
    036+ Using where
    037- AND a.customer_id = b.customer_id
    037+ 1
    038- LEFT JOIN t_stk_receiptandstorage_couriernum d ON a.courier_num = d.courier_num
    038+ SIMPLE
    039- AND a.customer_id = d.customer_id
    039+ d
    040- ORDER BY a.id DESC
    040+ None
    041- LIMIT 1000;
    041+ eq_ref
    042- explain表:
    042+ idx_couriernum,idx_couriernum_customerid,idx_couriernum_customerid_preparebuyadminid
    043-
    043+ idx_couriernum
    044-
    044+ 2003
    045-
    045+ zhcxkj-center-warehouse.a.courier_num
    046-
    046+ 1
    047-
    047+ 100
    048-
    048+ Using where
    049-
    049+ 1
    050-
    050+ SIMPLE
    051-
    051+ b
    052-
    052+ None
    053-
    053+ eq_ref
    054-
    054+ PRIMARY,idx_id,idx_id_singledetailid,idx_id_actualbuynum
    055-
    055+ PRIMARY
    056- id
    056+ 12
    057-
    057+ zhcxkj-center-warehouse.a.buy_detail_id,zhcxkj-center-warehouse.a.customer_id
    058-
    058+ 1
    059- select_type
    059+ 100
    060-
    060+ None
    061-
    061+
    062- table
    062+ 额外建议: 索引建议: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】 表,无需添加任何索引。
    063-
    064-
    065- partitions
    066-
    067-
    068- type
    069-
    070-
    071- possible_keys
    072-
    073-
    074- key
    075-
    076-
    077- key_len
    078-
    079-
    080- ref
    081-
    082-
    083- rows
    084-
    085-
    086- filtered
    087-
    088-
    089- Extra
    090-
    091-
    092-
    093-
    094-
    095-
    096- 1
    097-
    098-
    099- SIMPLE
    100-
    101-
    102- c
    103-
    104-
    105- None
    106-
    107-
    108- ALL
    109-
    110-
    111- 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
    112-
    113-
    114- None
    115-
    116-
    117- None
    118-
    119-
    120- None
    121-
    122-
    123- 1292049
    124-
    125-
    126- 11.11
    127-
    128-
    129- Using where; Using temporary; Using filesort
    130-
    131-
    132-
    133-
    134- 1
    135-
    136-
    137- SIMPLE
    138-
    139-
    140- a
    141-
    142-
    143- None
    144-
    145-
    146- eq_ref
    147-
    148-
    149- PRIMARY,idx_customer_addtime,idx_buy_detail_id_order_list_id
    150-
    151-
    152- PRIMARY
    153-
    154-
    155- 8
    156-
    157-
    158- zhcxkj-center-warehouse.c.order_buy_id
    159-
    160-
    161- 1
    162-
    163-
    164- 10
    165-
    166-
    167- Using where
    168-
    169-
    170-
    171-
    172- 1
    173-
    174-
    175- SIMPLE
    176-
    177-
    178- d
    179-
    180-
    181- None
    182-
    183-
    184- eq_ref
    185-
    186-
    187- idx_couriernum,idx_couriernum_customerid,idx_couriernum_customerid_preparebuyadminid
    188-
    189-
    190- idx_couriernum
    191-
    192-
    193- 2003
    194-
    195-
    196- zhcxkj-center-warehouse.a.courier_num
    197-
    198-
    199- 1
    200-
    201-
    202- 100
    203-
    204-
    205- Using where
    206-
    207-
    208-
    209-
    210- 1
    211-
    212-
    213- SIMPLE
    214-
    215-
    216- b
    217-
    218-
    219- None
    220-
    221-
    222- eq_ref
    223-
    224-
    225- PRIMARY,idx_id,idx_id_singledetailid,idx_id_actualbuynum
    226-
    227-
    228- PRIMARY
    229-
    230-
    231- 12
    232-
    233-
    234- zhcxkj-center-warehouse.a.buy_detail_id,zhcxkj-center-warehouse.a.customer_id
    235-
    236-
    237- 1
    238-
    239-
    240- 100
    241-
    242-
    243- None
    244-
    245-
    246-
    247-
    248-
    249- 额外建议:
    250- 索引建议:join联表查询,on关联字段必须增加索引!
    251-
    252- 需要添加索引:ALTER TABLE t_stk_procurement_detail_orderbuy ADD INDEX idx_courier_num(courier_num);
    253- 【t_stk_procurement_detail_orderbuy】表 【courier_num】字段,索引分析:
    254- +--------------+--------------+---------------+---------------+
    255- | TABLE_NAME | INDEX_NAME | COLUMN_NAME | CARDINALITY |
    256- +==============+==============+===============+===============+
    257- +--------------+--------------+---------------+---------------+
    258-
    259- → 【t_stk_receiptandstorage_detail】表 【buy_time】字段,索引已经存在,无需添加任何索引。
    260-
    261- 【t_stk_receiptandstorage_detail】表 【buy_time】字段,索引分析:
    262- +--------------------------------+--------------------------------+---------------+---------------+
    263- | TABLE_NAME | INDEX_NAME | COLUMN_NAME | CARDINALITY |
    264- +================================+================================+===============+===============+
    265- | t_stk_receiptandstorage_detail | idx_orderbuyid_customerid_buyt | buy_time | 1280212 |
    266- | | ime | | |
    267- +--------------------------------+--------------------------------+---------------+---------------+
    268-
    269- → 【t_stk_procurement_detail_orderbuy】表 【id】字段,索引已经存在,无需添加任何索引。
    270-
    271- 【t_stk_procurement_detail_orderbuy】表 【id】字段,索引分析:
    272- +--------------------------------+--------------+---------------+---------------+
    273- | TABLE_NAME | INDEX_NAME | COLUMN_NAME | CARDINALITY |
    274- +================================+==============+===============+===============+
    275- | t_stk_procurement_detail_order | PRIMARY | id | 1191351 |
    276- | buy | | | |
    277- +--------------------------------+--------------+---------------+---------------+
    278-
    279- → 【t_stk_receiptandstorage_couriernum】 表,无需添加任何索引。
    280-
    281- → 【t_stk_procurement_detail_buylist_detail】 表,无需添加任何索引。
    282-
    283-
    001- 反馈人:袁慧斌<br />
    001+ 反馈人:袁慧斌<br /> 数据库:zhcxkj-center-warehouse<br /> 查询时间:15.2868<br /> 执行次数: 87<br /> 扫描行数:1304400<br /> 发送行数:761.965<br /> 指纹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<br /> 真实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 &gt;= 2025-11-01 21:00:00 AND 2025-11-02 23:59:59 &gt;=c.buy_time ) order by a.id desc limit 0,1000;<br /> 无人工修改<br /> AISQL修改建议:SELECT a.id, a.customer_id, a.warehouse_id, a.p_code, a.list_no, a.sku, <br /> b.single_detail_id, b.need_to_pack_type, a.single_no, a.courier_num, <br /> a.receipt_time, a.receipt_time_type, a.receipt_admin_Id, a.receipt_user_name, <br /> a.is_priority_storage, a.add_time, a.add_user_id, a.add_user_name, <br /> c.box_no, c.source_type, c.task_state, c.actual_buy_num, c.buy_time, <br /> c.buy_admin_id, c.buy_user_name, c.process_num, c.process_time, <br /> c.process_admin_id, c.process_user_name, c.check_num, c.check_time, <br /> c.check_admin_id, c.check_user_name, c.tally_num, c.tally_time, <br /> c.tally_admin_id, c.tally_user_name, c.bad_num, c.put_in_num, <br /> c.put_in_time, c.put_in_admin_id, c.put_in_user_name, c.is_return_to_good, <br /> c.receive_and_delivery_num, c.surplus_num, c.task_no, c.put_task_detail_id, <br /> c.loss_num, c.process_scan_time, c.is_changed, c.old_box_no, <br /> c.initial_bad_num, c.re_check_bad_num, c.re_check_user_id, c.re_check_time, <br /> c.re_check_user_name, c.bad_check_type, c.put_in_area_id, c.put_in_area_name, <br /> c.put_in_position_id, c.put_in_position_code, a.recommend_area_id, <br /> a.recommend_area_name, d.prepare_buy_time, d.prepare_buy_admin_id, <br /> d.prepare_buy_user_name, c.return_good_box_no, c.abnormal_num, <br /> c.abnormal_user_id, c.abnormal_user_name, c.abnormal_time, c.abnormal_node, <br /> c.is_abnormal, c.abnormal_return_num, c.abnormal_return_user_id, <br /> c.abnormal_return_name, c.abnormal_return_time, c.is_two_tally, <br /> c.two_tally_num, c.two_tally_admin_id, c.two_tally_user_name, <br /> c.two_tally_time, c.is_package_optimize, c.is_quality_optimize <br /> FROM t_stk_procurement_detail_orderbuy a <br /> STRAIGHT_JOIN t_stk_receiptandstorage_detail c ON a.id = c.order_buy_id <br /> AND a.customer_id = c.customer_id <br /> AND c.buy_time BETWEEN 2025-11-01 21:00:00 AND 2025-11-02 23:59:59 <br /> LEFT JOIN t_stk_procurement_detail_buylist_detail b ON a.buy_detail_id = b.id <br /> AND a.customer_id = b.customer_id <br /> LEFT JOIN t_stk_receiptandstorage_couriernum d ON a.courier_num = d.courier_num <br /> AND a.customer_id = d.customer_id <br /> ORDER BY a.id DESC <br /> LIMIT 1000;<br /> explain表:<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><table><tbody><tr><th>id</th>
    002- 数据库:zhcxkj-center-warehouse<br />
    002+ <th>select_type</th>
    003- 查询时间:15.2868<br />
    003+ <th>table</th>
    004- 执行次数: 87<br />
    004+ <th>partitions</th>
    005- 扫描行数:1304400<br />
    005+ <th>type</th>
    006- 发送行数:761.965<br />
    006+ <th>possible_keys</th>
    007- 指纹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<br />
    007+ <th>key</th>
    008- 真实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 &gt;= 2025-11-01 21:00:00 AND 2025-11-02 23:59:59 &gt;=c.buy_time ) order by a.id desc limit 0,1000;<br />
    008+ <th>key_len</th>
    009- 无人工修改<br />
    009+ <th>ref</th>
    010- AISQL修改建议:SELECT a.id, a.customer_id, a.warehouse_id, a.p_code, a.list_no, a.sku, <br />
    010+ <th>rows</th>
    011- b.single_detail_id, b.need_to_pack_type, a.single_no, a.courier_num, <br />
    011+ <th>filtered</th>
    012- a.receipt_time, a.receipt_time_type, a.receipt_admin_Id, a.receipt_user_name, <br />
    012+ <th>Extra</th>
    013- a.is_priority_storage, a.add_time, a.add_user_id, a.add_user_name, <br />
    013+ </tr></tbody><tbody><tr><td>1</td>
    014- c.box_no, c.source_type, c.task_state, c.actual_buy_num, c.buy_time, <br />
    014+ <td>SIMPLE</td>
    015- c.buy_admin_id, c.buy_user_name, c.process_num, c.process_time, <br />
    015+ <td>c</td>
    016- c.process_admin_id, c.process_user_name, c.check_num, c.check_time, <br />
    016+ <td>None</td>
    017- c.check_admin_id, c.check_user_name, c.tally_num, c.tally_time, <br />
    017+ <td>ALL</td>
    018- c.tally_admin_id, c.tally_user_name, c.bad_num, c.put_in_num, <br />
    018+ <td>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</td>
    019- c.put_in_time, c.put_in_admin_id, c.put_in_user_name, c.is_return_to_good, <br />
    019+ <td>None</td>
    020- c.receive_and_delivery_num, c.surplus_num, c.task_no, c.put_task_detail_id, <br />
    020+ <td>None</td>
    021- c.loss_num, c.process_scan_time, c.is_changed, c.old_box_no, <br />
    021+ <td>None</td>
    022- c.initial_bad_num, c.re_check_bad_num, c.re_check_user_id, c.re_check_time, <br />
    022+ <td>1292049</td>
    023- c.re_check_user_name, c.bad_check_type, c.put_in_area_id, c.put_in_area_name, <br />
    023+ <td>11.11</td>
    024- c.put_in_position_id, c.put_in_position_code, a.recommend_area_id, <br />
    024+ <td>Using where; Using temporary; Using filesort</td>
    025- a.recommend_area_name, d.prepare_buy_time, d.prepare_buy_admin_id, <br />
    025+ </tr><tr><td>1</td>
    026- d.prepare_buy_user_name, c.return_good_box_no, c.abnormal_num, <br />
    026+ <td>SIMPLE</td>
    027- c.abnormal_user_id, c.abnormal_user_name, c.abnormal_time, c.abnormal_node, <br />
    027+ <td>a</td>
    028- c.is_abnormal, c.abnormal_return_num, c.abnormal_return_user_id, <br />
    028+ <td>None</td>
    029- c.abnormal_return_name, c.abnormal_return_time, c.is_two_tally, <br />
    029+ <td>eq_ref</td>
    030- c.two_tally_num, c.two_tally_admin_id, c.two_tally_user_name, <br />
    030+ <td>PRIMARY,idx_customer_addtime,idx_buy_detail_id_order_list_id</td>
    031- c.two_tally_time, c.is_package_optimize, c.is_quality_optimize <br />
    031+ <td>PRIMARY</td>
    032- FROM t_stk_procurement_detail_orderbuy a <br />
    032+ <td>8</td>
    033- STRAIGHT_JOIN t_stk_receiptandstorage_detail c ON a.id = c.order_buy_id <br />
    033+ <td>zhcxkj-center-warehouse.c.order_buy_id</td>
    034- AND a.customer_id = c.customer_id <br />
    034+ <td>1</td>
    035- AND c.buy_time BETWEEN 2025-11-01 21:00:00 AND 2025-11-02 23:59:59 <br />
    035+ <td>10</td>
    036- LEFT JOIN t_stk_procurement_detail_buylist_detail b ON a.buy_detail_id = b.id <br />
    036+ <td>Using where</td>
    037- AND a.customer_id = b.customer_id <br />
    037+ </tr><tr><td>1</td>
    038- LEFT JOIN t_stk_receiptandstorage_couriernum d ON a.courier_num = d.courier_num <br />
    038+ <td>SIMPLE</td>
    039- AND a.customer_id = d.customer_id <br />
    039+ <td>d</td>
    040- ORDER BY a.id DESC <br />
    040+ <td>None</td>
    041- LIMIT 1000;<br />
    041+ <td>eq_ref</td>
    042- explain表:<br />
    042+ <td>idx_couriernum,idx_couriernum_customerid,idx_couriernum_customerid_preparebuyadminid</td>
    043- <br />
    043+ <td>idx_couriernum</td>
    044- <br />
    044+ <td>2003</td>
    045- <br />
    045+ <td>zhcxkj-center-warehouse.a.courier_num</td>
    046- <br />
    046+ <td>1</td>
    047- <br />
    047+ <td>100</td>
    048- <br />
    048+ <td>Using where</td>
    049- <br />
    049+ </tr><tr><td>1</td>
    050- <br />
    050+ <td>SIMPLE</td>
    051- <br />
    051+ <td>b</td>
    052- <table>
    052+ <td>None</td>
    053- <tbody>
    053+ <td>eq_ref</td>
    054- <tr>
    054+ <td>PRIMARY,idx_id,idx_id_singledetailid,idx_id_actualbuynum</td>
    055- <th>
    055+ <td>PRIMARY</td>
    056- id
    056+ <td>12</td>
    057- </th>
    057+ <td>zhcxkj-center-warehouse.a.buy_detail_id,zhcxkj-center-warehouse.a.customer_id</td>
    058- <th>
    058+ <td>1</td>
    059- select_type
    059+ <td>100</td>
    060- </th>
    060+ <td>None</td>
    061- <th>
    061+ </tr></tbody></table><br />
    062- table
    062+ 额外建议:<br /> 索引建议:join联表查询,on关联字段必须增加索引!<br /><span style="color:#FF0000;"><br /> 需要添加索引:ALTER TABLE t_stk_procurement_detail_orderbuy ADD INDEX idx_courier_num(courier_num);</span><br /> 【t_stk_procurement_detail_orderbuy】表 【courier_num】字段,索引分析:<br /> +--------------+--------------+---------------+---------------+<br /> | TABLE_NAME | INDEX_NAME | COLUMN_NAME | CARDINALITY |<br /> +==============+==============+===============+===============+<br /> +--------------+--------------+---------------+---------------+<br /><br /><span style="color:#008000;font-weight:bold;">→ 【t_stk_receiptandstorage_detail】表 【buy_time】字段,索引已经存在,无需添加任何索引。</span><br /><br /> 【t_stk_receiptandstorage_detail】表 【buy_time】字段,索引分析:<br /> +--------------------------------+--------------------------------+---------------+---------------+<br /> | TABLE_NAME | INDEX_NAME | COLUMN_NAME | CARDINALITY |<br /> +================================+================================+===============+===============+<br /> | t_stk_receiptandstorage_detail | idx_orderbuyid_customerid_buyt | buy_time | 1280212 |<br /> | | ime | | |<br /> +--------------------------------+--------------------------------+---------------+---------------+<br /><br /><span style="color:#008000;font-weight:bold;">→ 【t_stk_procurement_detail_orderbuy】表 【id】字段,索引已经存在,无需添加任何索引。</span><br /><br /> 【t_stk_procurement_detail_orderbuy】表 【id】字段,索引分析:<br /> +--------------------------------+--------------+---------------+---------------+<br /> | TABLE_NAME | INDEX_NAME | COLUMN_NAME | CARDINALITY |<br /> +================================+==============+===============+===============+<br /> | t_stk_procurement_detail_order | PRIMARY | id | 1191351 |<br /> | buy | | | |<br /> +--------------------------------+--------------+---------------+---------------+<br /><br /><span style="color:#008000;font-weight:bold;">→ 【t_stk_receiptandstorage_couriernum】 表,无需添加任何索引。</span><br /><br /><span style="color:#008000;font-weight:bold;">→ 【t_stk_procurement_detail_buylist_detail】 表,无需添加任何索引。</span><br /><br /><br />
    063- </th>
    064- <th>
    065- partitions
    066- </th>
    067- <th>
    068- type
    069- </th>
    070- <th>
    071- possible_keys
    072- </th>
    073- <th>
    074- key
    075- </th>
    076- <th>
    077- key_len
    078- </th>
    079- <th>
    080- ref
    081- </th>
    082- <th>
    083- rows
    084- </th>
    085- <th>
    086- filtered
    087- </th>
    088- <th>
    089- Extra
    090- </th>
    091- </tr>
    092- </tbody>
    093- <tbody>
    094- <tr>
    095- <td>
    096- 1
    097- </td>
    098- <td>
    099- SIMPLE
    100- </td>
    101- <td>
    102- c
    103- </td>
    104- <td>
    105- None
    106- </td>
    107- <td>
    108- ALL
    109- </td>
    110- <td>
    111- 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
    112- </td>
    113- <td>
    114- None
    115- </td>
    116- <td>
    117- None
    118- </td>
    119- <td>
    120- None
    121- </td>
    122- <td>
    123- 1292049
    124- </td>
    125- <td>
    126- 11.11
    127- </td>
    128- <td>
    129- Using where; Using temporary; Using filesort
    130- </td>
    131- </tr>
    132- <tr>
    133- <td>
    134- 1
    135- </td>
    136- <td>
    137- SIMPLE
    138- </td>
    139- <td>
    140- a
    141- </td>
    142- <td>
    143- None
    144- </td>
    145- <td>
    146- eq_ref
    147- </td>
    148- <td>
    149- PRIMARY,idx_customer_addtime,idx_buy_detail_id_order_list_id
    150- </td>
    151- <td>
    152- PRIMARY
    153- </td>
    154- <td>
    155- 8
    156- </td>
    157- <td>
    158- zhcxkj-center-warehouse.c.order_buy_id
    159- </td>
    160- <td>
    161- 1
    162- </td>
    163- <td>
    164- 10
    165- </td>
    166- <td>
    167- Using where
    168- </td>
    169- </tr>
    170- <tr>
    171- <td>
    172- 1
    173- </td>
    174- <td>
    175- SIMPLE
    176- </td>
    177- <td>
    178- d
    179- </td>
    180- <td>
    181- None
    182- </td>
    183- <td>
    184- eq_ref
    185- </td>
    186- <td>
    187- idx_couriernum,idx_couriernum_customerid,idx_couriernum_customerid_preparebuyadminid
    188- </td>
    189- <td>
    190- idx_couriernum
    191- </td>
    192- <td>
    193- 2003
    194- </td>
    195- <td>
    196- zhcxkj-center-warehouse.a.courier_num
    197- </td>
    198- <td>
    199- 1
    200- </td>
    201- <td>
    202- 100
    203- </td>
    204- <td>
    205- Using where
    206- </td>
    207- </tr>
    208- <tr>
    209- <td>
    210- 1
    211- </td>
    212- <td>
    213- SIMPLE
    214- </td>
    215- <td>
    216- b
    217- </td>
    218- <td>
    219- None
    220- </td>
    221- <td>
    222- eq_ref
    223- </td>
    224- <td>
    225- PRIMARY,idx_id,idx_id_singledetailid,idx_id_actualbuynum
    226- </td>
    227- <td>
    228- PRIMARY
    229- </td>
    230- <td>
    231- 12
    232- </td>
    233- <td>
    234- zhcxkj-center-warehouse.a.buy_detail_id,zhcxkj-center-warehouse.a.customer_id
    235- </td>
    236- <td>
    237- 1
    238- </td>
    239- <td>
    240- 100
    241- </td>
    242- <td>
    243- None
    244- </td>
    245- </tr>
    246- </tbody>
    247- </table>
    248- <br />
    249- 额外建议:<br />
    250- 索引建议:join联表查询,on关联字段必须增加索引!<br />
    251- <span style="color:red;"><br />
    252- 需要添加索引:ALTER TABLE t_stk_procurement_detail_orderbuy ADD INDEX idx_courier_num(courier_num);</span><br />
    253- 【t_stk_procurement_detail_orderbuy】表 【courier_num】字段,索引分析:<br />
    254- +--------------+--------------+---------------+---------------+<br />
    255- | TABLE_NAME | INDEX_NAME | COLUMN_NAME | CARDINALITY |<br />
    256- +==============+==============+===============+===============+<br />
    257- +--------------+--------------+---------------+---------------+<br />
    258- <br />
    259- <span style="color:green;font-weight:bold;">→ 【t_stk_receiptandstorage_detail】表 【buy_time】字段,索引已经存在,无需添加任何索引。</span><br />
    260- <br />
    261- 【t_stk_receiptandstorage_detail】表 【buy_time】字段,索引分析:<br />
    262- +--------------------------------+--------------------------------+---------------+---------------+<br />
    263- | TABLE_NAME | INDEX_NAME | COLUMN_NAME | CARDINALITY |<br />
    264- +================================+================================+===============+===============+<br />
    265- | t_stk_receiptandstorage_detail | idx_orderbuyid_customerid_buyt | buy_time | 1280212 |<br />
    266- | | ime | | |<br />
    267- +--------------------------------+--------------------------------+---------------+---------------+<br />
    268- <br />
    269- <span style="color:green;font-weight:bold;">→ 【t_stk_procurement_detail_orderbuy】表 【id】字段,索引已经存在,无需添加任何索引。</span><br />
    270- <br />
    271- 【t_stk_procurement_detail_orderbuy】表 【id】字段,索引分析:<br />
    272- +--------------------------------+--------------+---------------+---------------+<br />
    273- | TABLE_NAME | INDEX_NAME | COLUMN_NAME | CARDINALITY |<br />
    274- +================================+==============+===============+===============+<br />
    275- | t_stk_procurement_detail_order | PRIMARY | id | 1191351 |<br />
    276- | buy | | | |<br />
    277- +--------------------------------+--------------+---------------+---------------+<br />
    278- <br />
    279- <span style="color:green;font-weight:bold;">→ 【t_stk_receiptandstorage_couriernum】 表,无需添加任何索引。</span><br />
    280- <br />
    281- <span style="color:green;font-weight:bold;">→ 【t_stk_procurement_detail_buylist_detail】 表,无需添加任何索引。</span><br />
    282- <br />
    283- <br />
  5. 2025-11-05 13:34:54, 由 陈莉珍 关闭。
    修改了 Bug状态 ,旧值为 "resolved",新值为 "closed"。
    修改了 指派给 ,旧值为 "chenlizhen",新值为 "closed"。
    修改了 由谁关闭,旧值为 "",新值为 "chenlizhen"。
    修改了 关闭日期,旧值为 "",新值为 "2025-11-05 13:34:54"。
所属项目 技术中心-需求池
所属模块 供应链   仓储物流   物流
所属计划
所属迭代
Bug类型
严重程度 一般
优先级 P2
Bug状态 已关闭
业务部门 总经办
影响功能
开发责任人 谢业福
测试责任人 刘超
解决时效 0.69
激活次数 0
激活日期
是否确认 是
当前指派 Closed 于 2025-11-05 13:34:54
截止日期 0000-00-00
上线时间 2025-11-05 11:44:43
上线时效 0.69
操作系统
浏览器
关键词
抄送给
所属迭代
相关需求
相关任务
由谁创建 陈莉珍 于 2025-11-05 11:03:33
影响环境 生产环境-业务反馈
由谁解决 谢业福 于 2025-11-05 11:44:43
解决版本 主干
解决方案 性能问题
由谁关闭 陈莉珍 于 2025-11-05 13:34:54
最后修改 陈莉珍 于 2025-11-05 13:34:54
相关Bug