Как быстро заполнить таблицу 1 000 000 ТЕСТОВЫХ записей?

1,00
р.
Пусть имеется таблица tests с единственным столбцом title
CREATE TABLE tests ( title varchar(256) NOT NULL )
Как можно заполнить ее 1 000 000 тестовых записей?

Ответ
Создадим таблицу samples с точно такой же структурой, что и таблица tests. Заполним ее 10 тестовыми записями.
CREATE TABLE samples ( title varchar(256) NOT NULL )
INSERT INTO samples (title) VALUES ('8iRDgsEIq4GmOs32FnHM3b3cH60n3mm8070'), ('UAmsXyrKgApfHMyV2kUrYqLphN99Q7TJSoe'), ('OX1qiFeTigcOTO5JVvgFk7MRDgjgatkTqwL'), ('CT9Kfbplp4QC87G32UIKlkGd31jdjt4qH4f'), ('WsAhjBL5tAgihYZBtX97FNUmEpXavhb4CRw'), ('LwaitJ5dieXyixEmjJXhhqDY8Zg9Tu5ecoV'), ('KpHsnqrcMCpkRxkGNMjEJV0jFaeucPtbLWe'), ('t2GSIDOvW14eMlroAWrRR6xU5DoeNUXY0lD'), ('rSvrEPxR8rcw7QYjXfeNdyf3LpqYNHu3W7a'), ('6liUHPkjnygSatoUB4juZ5TaJZjaxHpR4BL')
Для того, чтобы превратить 10 записей из таблицы samples в 1 000 000 записей произведем самообъединение таблицы samples шесть раз
SELECT fst.title FROM samples AS fst, samples AS snd, samples AS thd, samples AS fth, samples AS fif, samples AS sth
Оператор JOIN, который в SQL может быть заменен обычной запятой, осуществляет декартово соединение таблиц, когда каждой записи одной таблицы сопоставляется каждая запись другой таблицы. Таким образом, если в одной таблице 10 записей и в другой таблице 10 записей, результирующая таблица, полученная их соединением через JOIN будет содержать 100 записей. Как нетрудно увидеть
10 x 10 x 10 x 10 x 10 x 10 = 1 000 000 записей
Если в таблице samples будет 100 записей, для получения 1 000 000 записей будет достаточно соединений трех таких таблиц, если в samples будет 1000 записей, будет достаточно объединить таблицу саму с собой один раз.
Вставить результат в целевую таблицу tests можно при помощи оператора INSERT ... SELECT ...
INSERT INTO tests SELECT fst.title FROM samples AS fst, samples AS snd, samples AS thd, samples AS fth, samples AS fif, samples AS sth