Создание индекса после вставки данных является более эффективным способом (даже часто рекомендуется удалить индекс перед пакетным импортом и после импорта воссоздать его).
Пример Syntetic (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 секунд (более чем в два раза медленнее)