-- 线上慢 SQL 索引优化(OceanBase MySQL 模式) -- 执行前请确认同名索引不存在;建议低峰期逐条执行并观察建索引耗时。 -- 本文件只包含索引 DDL,不包含任何数据修改。 -- P0:订单列表按租户、删除标记、创建时间倒序分页。 CREATE INDEX idx_hard_order_tenant_del_ct_uid ON pjcloudx_hardware.hard_order (tenant_id, del_flag, create_time, user_id); -- P0:订单号 + 订单类型 + 状态精确计数。 CREATE INDEX idx_hard_order_tenant_del_order_lookup ON pjcloudx_hardware.hard_order (tenant_id, del_flag, order_no, order_type, order_status); -- P0:设备侧订单号精确查询。 CREATE INDEX idx_hard_order_tenant_del_android_code ON pjcloudx_hardware.hard_order (tenant_id, del_flag, android_order_code); -- P0:每个订单取最新售后记录(GROUP BY order_id + MAX(id))。 CREATE INDEX idx_hard_after_sale_tenant_order_id ON pjcloudx_hardware.hard_after_sale (tenant_id, order_id, id); -- P0:钱包流水按业务类型、时间倒序分页;biz_type 为 TINYTEXT,使用前缀索引。 CREATE INDEX idx_wallet_tx_tenant_del_ct_uid ON pjcloudx_wallet.wallet_transaction (tenant_id, del_flag, create_time, user_id); -- P0:钱包流水按业务类型、时间倒序分页;biz_type 为 TINYTEXT,使用前缀索引。 CREATE INDEX idx_wallet_tx_tenant_del_biz_ct_uid ON pjcloudx_wallet.wallet_transaction (tenant_id, del_flag, biz_type(8), create_time, user_id); -- P0:流程历史按办理人查询并按结束时间倒序。 CREATE INDEX idx_act_hi_actinst_assignee_end ON pjcloudx_flow.act_hi_actinst (ASSIGNEE_, END_TIME_); -- P1:支付状态 + 支付时间统计。先观察 P0 上线后的实际收益,再决定是否执行。 -- CREATE INDEX idx_hard_order_tenant_del_status_ptime_mch -- ON pjcloudx_hardware.hard_order (tenant_id, del_flag, order_status, pay_time, merchant_id); -- P1:指定商户部门的支付统计。索引较宽,按接口频率决定是否执行。 -- CREATE INDEX idx_hard_order_tenant_del_mdept_status_mt_ptime -- ON pjcloudx_hardware.hard_order -- (tenant_id, del_flag, merchant_dept_id, order_status, merchant_type, pay_time); -- P1:按钱包所属部门定位钱包 ID;维表较小时收益有限。 -- CREATE INDEX idx_wallet_manage_tenant_dept_id -- ON pjcloudx_wallet.wallet_manage (tenant_id, dept_id, id);