Створення індексу після вставки даних є більш ефективним способом (навіть часто рекомендується знизити індекс до пакетного імпорту та після імпорту відтворити його).
Синтетичний приклад (PostgreSQL 9.1, машина для повільної розробки, один мільйон рядків):
CREATE TABLE test1(id serial, x integer);
INSERT INTO test1(id, x) SELECT x.id, x.id*100 FROM generate_series(1,1000000) AS x(id);
CREATE INDEX test1_x ON test1 (x);
Вставте, а потім створіть індекс - близько 12 с
CREATE TABLE test2(id serial, x integer);
CREATE INDEX test2_x ON test2 (x);
INSERT INTO test2(id, x) SELECT x.id, x.id*100 FROM generate_series(1,1000000) AS x(id);
Створити індекс, а потім вставити - приблизно 25,5 сек (більш ніж у два рази повільніше)