-- best_record: 랭킹용 ALTER TABLE best_record ADD INDEX IF NOT EXISTS idx_maestro_app_dt (MaestroID, AppID, RecordDateTime), ALGORITHM=INPLACE, LOCK=NONE; -- best_record: 히스토리/저장용 ALTER TABLE best_record ADD INDEX IF NOT EXISTS idx_maestro_player_app_dt (MaestroID, PlayerID, AppID, RecordDateTime), ALGORITHM=INPLACE, LOCK=NONE; -- typing_exam_record ALTER TABLE typing_exam_record ADD INDEX IF NOT EXISTS idx_maestro_writing_dt (MaestroID, WritingID, RecordDateTime), ALGORITHM=INPLACE, LOCK=NONE; ALTER TABLE typing_exam_record ADD INDEX IF NOT EXISTS idx_maestro_player_writing_dt (MaestroID, PlayerID, WritingID, RecordDateTime), ALGORITHM=INPLACE, LOCK=NONE; -- license_score ALTER TABLE license_score ADD INDEX IF NOT EXISTS idx_maestro_player_dt (MaestroID, PlayerID, ScoreDateTime), ALGORITHM=INPLACE, LOCK=NONE; -- app_highest_record: UNIQUE 키 ALTER TABLE app_highest_record ADD UNIQUE KEY IF NOT EXISTS uk_maestro_player_app (MaestroID, PlayerID, AppID), ALGORITHM=INPLACE, LOCK=NONE; -- typing_exam_highest_record: UNIQUE 키 ALTER TABLE typing_exam_highest_record ADD UNIQUE KEY IF NOT EXISTS uk_maestro_player_writing (MaestroID, PlayerID, WritingID), ALGORITHM=INPLACE, LOCK=NONE;