16 lines
916 B
SQL
16 lines
916 B
SQL
-- orders 表索引优化:提升 /api/orders 列表、营收统计查询性能
|
||
-- 执行:mysql -u user -p database < soul-api/scripts/add-orders-indexes.sql
|
||
-- 幂等:索引已存在时跳过,可重复执行
|
||
|
||
-- 1. idx_status_created 复合索引
|
||
SELECT COUNT(*) INTO @cnt FROM information_schema.statistics
|
||
WHERE table_schema = DATABASE() AND table_name = 'orders' AND index_name = 'idx_status_created';
|
||
SET @sql = IF(@cnt = 0, 'ALTER TABLE orders ADD INDEX idx_status_created (status, created_at)', 'SELECT 1');
|
||
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
||
|
||
-- 2. idx_user_id 索引
|
||
SELECT COUNT(*) INTO @cnt FROM information_schema.statistics
|
||
WHERE table_schema = DATABASE() AND table_name = 'orders' AND index_name = 'idx_user_id';
|
||
SET @sql = IF(@cnt = 0, 'ALTER TABLE orders ADD INDEX idx_user_id (user_id)', 'SELECT 1');
|
||
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|