Tạo chỉ mục sau khi chèn dữ liệu là cách hiệu quả hơn (thậm chí thường được khuyến khích giảm chỉ mục trước khi nhập hàng loạt và sau khi nhập, tạo lại nó).
Ví dụ tổng hợp (PostgreSQL 9.1, máy phát triển chậm, một triệu hàng):
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);
-- Time: 7816.561 ms
CREATE INDEX test1_x ON test1 (x);
-- Time: 4183.614 ms
Chèn và sau đó tạo chỉ mục - khoảng 12 giây
CREATE TABLE test2(id serial, x integer);
CREATE INDEX test2_x ON test2 (x);
-- Time: 2.315 ms
INSERT INTO test2(id, x) SELECT x.id, x.id*100 FROM generate_series(1,1000000) AS x(id);
-- Time: 25399.460 ms
Tạo chỉ mục và sau đó chèn - khoảng 25,5 giây (chậm hơn hai lần)