82 lines
2.0 KiB
PL/PgSQL
82 lines
2.0 KiB
PL/PgSQL
-- Migration: optimize meeting loading performance
|
|
-- Created at: 2026-04-03
|
|
|
|
BEGIN;
|
|
|
|
SET @sql := IF(
|
|
EXISTS (
|
|
SELECT 1
|
|
FROM information_schema.statistics
|
|
WHERE table_schema = DATABASE()
|
|
AND table_name = 'audio_files'
|
|
AND index_name = 'idx_audio_files_meeting_id'
|
|
),
|
|
'SELECT 1',
|
|
'ALTER TABLE `audio_files` ADD KEY `idx_audio_files_meeting_id` (`meeting_id`)'
|
|
);
|
|
PREPARE stmt FROM @sql;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|
|
|
|
SET @sql := IF(
|
|
EXISTS (
|
|
SELECT 1
|
|
FROM information_schema.statistics
|
|
WHERE table_schema = DATABASE()
|
|
AND table_name = 'transcript_segments'
|
|
AND index_name = 'idx_transcript_segments_meeting_time'
|
|
),
|
|
'SELECT 1',
|
|
'ALTER TABLE `transcript_segments` ADD KEY `idx_transcript_segments_meeting_time` (`meeting_id`, `start_time_ms`)'
|
|
);
|
|
PREPARE stmt FROM @sql;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|
|
|
|
SET @sql := IF(
|
|
EXISTS (
|
|
SELECT 1
|
|
FROM information_schema.statistics
|
|
WHERE table_schema = DATABASE()
|
|
AND table_name = 'transcript_tasks'
|
|
AND index_name = 'idx_transcript_tasks_meeting_created'
|
|
),
|
|
'SELECT 1',
|
|
'ALTER TABLE `transcript_tasks` ADD KEY `idx_transcript_tasks_meeting_created` (`meeting_id`, `created_at`)'
|
|
);
|
|
PREPARE stmt FROM @sql;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|
|
|
|
SET @sql := IF(
|
|
EXISTS (
|
|
SELECT 1
|
|
FROM information_schema.statistics
|
|
WHERE table_schema = DATABASE()
|
|
AND table_name = 'llm_tasks'
|
|
AND index_name = 'idx_llm_tasks_meeting_created'
|
|
),
|
|
'SELECT 1',
|
|
'ALTER TABLE `llm_tasks` ADD KEY `idx_llm_tasks_meeting_created` (`meeting_id`, `created_at`)'
|
|
);
|
|
PREPARE stmt FROM @sql;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|
|
|
|
SET @sql := IF(
|
|
EXISTS (
|
|
SELECT 1
|
|
FROM information_schema.statistics
|
|
WHERE table_schema = DATABASE()
|
|
AND table_name = 'meetings'
|
|
AND index_name = 'idx_meetings_user_time_created'
|
|
),
|
|
'SELECT 1',
|
|
'ALTER TABLE `meetings` ADD KEY `idx_meetings_user_time_created` (`user_id`, `meeting_time`, `created_at`)'
|
|
);
|
|
PREPARE stmt FROM @sql;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|
|
|
|
COMMIT;
|