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

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.

主站蜘蛛池模板: 广东省| 汕头市| 保山市| 景洪市| 海南省| 永安市| 中方县| 汤原县| 云浮市| 四子王旗| 三台县| 屏东市| 富锦市| 五大连池市| 绥江县| 两当县| 寿阳县| 崇仁县| 英吉沙县| 高安市| 富民县| 镇坪县| 左权县| 独山县| 略阳县| 合阳县| 剑河县| 贵州省| 扎兰屯市| 邢台县| 普定县| 安乡县| 通榆县| 凤阳县| 神池县| 洪江市| 沙田区| 工布江达县| 庆元县| 隆子县| 北海市|