Самый быстрый способ, который я могу себе представить, заключается в следующем:
CREATE TABLE c_unique (c1 varchar(100 not null));
ALTER TABLE c_unique ADD UNIQUE INDEX (c1);
INSERT IGNORE INTO c_unique(c1) SELECT c1 FROM table;
INSERT IGNORE INTO c_unique(c1) SELECT c2 FROM table;
INSERT IGNORE INTO c_unique(c1) SELECT c3 FROM table;
Использование UNION неявно даст вам ОТЛИЧНЫЕ результаты и выполнит временную операцию с упорядочением, чтобы выполнить это.Используя INSERT IGNORE, вы просто отклоняете строки в операции INSERT, основываясь на индексе UNIQUE, который, как я предполагаю, будет намного быстрее.конкретная длина символа.Таким образом, вам может потребоваться указать длину префикса.Вы можете прочитать больше на эту тему здесь: CREATE INDEX Синтаксис