Files
zyt/server/sql/1.9.20260808/add_media_channel_stats_index.sql
T
Your Name 2199887c07 更新
:i# Please enter the commit message for your changes. Lines starting
2026-08-08 18:08:23 +08:00

39 lines
1.4 KiB
SQL

-- 渠道统计按 tag_id 取去重 external_userid;组合索引避免回表扫描标签关系数据。
-- 既有库切换统计前应执行一次:php think qywx:backfill-customer-tags --all --fast
SET @idx_tag_ext_exists := (
SELECT COUNT(*)
FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'zyt_qywx_external_contact_tag'
AND INDEX_NAME = 'idx_tag_ext'
);
SET @add_idx_tag_ext_sql := IF(
@idx_tag_ext_exists = 0,
'ALTER TABLE `zyt_qywx_external_contact_tag` ADD INDEX `idx_tag_ext` (`tag_id`, `external_userid`)',
'SELECT 1'
);
PREPARE add_idx_tag_ext_stmt FROM @add_idx_tag_ext_sql;
EXECUTE add_idx_tag_ext_stmt;
DEALLOCATE PREPARE add_idx_tag_ext_stmt;
-- 渠道选项按标签读取最新名称,覆盖 tag_id + update_time 可避免重复扫描关系表。
SET @idx_tag_update_exists := (
SELECT COUNT(*)
FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'zyt_qywx_external_contact_tag'
AND INDEX_NAME = 'idx_tag_update'
);
SET @add_idx_tag_update_sql := IF(
@idx_tag_update_exists = 0,
'ALTER TABLE `zyt_qywx_external_contact_tag` ADD INDEX `idx_tag_update` (`tag_id`, `update_time`)',
'SELECT 1'
);
PREPARE add_idx_tag_update_stmt FROM @add_idx_tag_update_sql;
EXECUTE add_idx_tag_update_stmt;
DEALLOCATE PREPARE add_idx_tag_update_stmt;