官术网_书友最值得收藏!

Adding data while indexing

Creating an index is easy. However, keep in mind that you cannot modify a table, while an index is being built. The CREATE INDEX command will lock up a table using a SHARE lock to ensure that no changes happen. While this is clearly no problem for small tables, it will cause issues on large ones on production systems. Indexing a terabyte of data or so will take some time and therefore blocking a table for too long can become an issue.

The solution to the problem is CREATE INDEX CONCURRENTLY command. Building the index will take a lot longer (usually at least twice as long) but you can use the table normally during index creation.

Here is how it works:

test=# CREATE INDEX CONCURRENTLY idx_name2 ON t_test (name);
CREATE INDEX

Note that PostgreSQL does not guarantee success if you are using the CREATE INDEX CONCURRENTLY command. An index can end up being marked as invalid if the operations going on on your system somehow conflict with index creation.

主站蜘蛛池模板: 连南| 亚东县| 晋江市| 双桥区| 万宁市| 雅安市| 陇西县| 本溪市| 呈贡县| 理塘县| 田东县| 休宁县| 西贡区| 苍山县| 保山市| 高唐县| 伽师县| 商城县| 福海县| 伊吾县| 保靖县| 周口市| 万山特区| 洛隆县| 宕昌县| 台中市| 阳原县| 嫩江县| 通榆县| 永修县| 景德镇市| 防城港市| 保德县| 托克托县| 五河县| 涿州市| 荥阳市| 临海市| 定州市| 大足县| 凤凰县|