32 lines
2.4 KiB
MySQL
32 lines
2.4 KiB
MySQL
|
|
-- =============================================================
|
|||
|
|
-- 发货「撤回 / 作废」性能优化:补充缺失索引
|
|||
|
|
-- 功能说明:
|
|||
|
|
-- 撤回 / 作废会按出库单号、入库单号、SN 等维度反复查询应收 / 应付单及其明细,
|
|||
|
|
-- 相关列缺少索引时会走全表扫描(例如 oms_inventory_delivery_detail 原先只有主键索引,
|
|||
|
|
-- 按 delivery_id 查询需要扫描 4.8 万行,单次耗时约 43ms),导致撤回过程明显变慢。
|
|||
|
|
-- 本脚本仅新增二级索引,不改表结构、不改动任何数据。
|
|||
|
|
-- 测试库实测效果:
|
|||
|
|
-- 财务单据审批状态检查 193ms -> 35ms
|
|||
|
|
-- listByOuterCodeViaDelivery 43ms -> 20ms
|
|||
|
|
-- 说明:
|
|||
|
|
-- 使用 ALGORITHM=INPLACE, LOCK=NONE 在线加索引,过程中不锁表;
|
|||
|
|
-- 若目标环境 MySQL 版本不支持该子句,可去掉后执行(表数据量大时注意选择低峰期)。
|
|||
|
|
-- =============================================================
|
|||
|
|
|
|||
|
|
-- 1. 发货记录明细:撤回时按发货记录、SN 反复查询
|
|||
|
|
ALTER TABLE `oms_inventory_delivery_detail` ADD INDEX `idx_delivery_id` (`delivery_id`), ALGORITHM=INPLACE, LOCK=NONE;
|
|||
|
|
ALTER TABLE `oms_inventory_delivery_detail` ADD INDEX `idx_product_sn` (`product_sn`), ALGORITHM=INPLACE, LOCK=NONE;
|
|||
|
|
|
|||
|
|
-- 2. 应收 / 应付单:按出库单号、入库单号查询
|
|||
|
|
ALTER TABLE `oms_payable_bill` ADD INDEX `idx_inventory_code` (`inventory_code`), ALGORITHM=INPLACE, LOCK=NONE;
|
|||
|
|
ALTER TABLE `oms_receivable_bill` ADD INDEX `idx_inventory_code` (`inventory_code`), ALGORITHM=INPLACE, LOCK=NONE;
|
|||
|
|
|
|||
|
|
-- 3. 四类财务单据明细:审批状态检查时按关联单号(付款单/收票单/收款单/开票单)查询
|
|||
|
|
ALTER TABLE `oms_payable_payment_detail` ADD INDEX `idx_payment_bill_code` (`payment_bill_code`), ALGORITHM=INPLACE, LOCK=NONE;
|
|||
|
|
ALTER TABLE `oms_payable_ticket_detail` ADD INDEX `idx_ticket_bill_code` (`ticket_bill_code`), ALGORITHM=INPLACE, LOCK=NONE;
|
|||
|
|
ALTER TABLE `oms_receivable_receipt_detail` ADD INDEX `idx_receipt_bill_code` (`receipt_bill_code`), ALGORITHM=INPLACE, LOCK=NONE;
|
|||
|
|
ALTER TABLE `oms_receivable_invoice_detail` ADD INDEX `idx_invoice_bill_code` (`invoice_bill_code`), ALGORITHM=INPLACE, LOCK=NONE;
|
|||
|
|
|
|||
|
|
-- 4. 出库单:按合同号统计有效出库单数量(撤回后回退订单出库状态时使用)
|
|||
|
|
ALTER TABLE `oms_inventory_outer` ADD INDEX `idx_order_code` (`order_code`), ALGORITHM=INPLACE, LOCK=NONE;
|