2012-07-30 32 views

回答

2

別擔心。性能不會有任何影響。

主要原因是數字(整數,bigint)與固定的存儲量一起存儲。因此,存儲或運行時開銷無論ID是否保留值42或38643874638

另外:序列中的漏洞無法避免。作爲主要關鍵只是「一些價值」,他們也無所謂。

整數的存儲要求:http://www.postgresql.org/docs/current/static/datatype-numeric.html#DATATYPE-INT

+0

作爲a_h_w_n_n說,有間隙沒有問題,但在某些時候你會用完的數字,並沒有什麼神奇的,以避免重複以前使用的號碼。也許做一些快速計算來檢查int4是否足夠大(序列可以很好地支持int8)。 – 2012-07-30 14:55:31

+0

謝謝@a_horse_with_no_name – dumb906 2012-07-31 13:40:49

+1

唯一真正的問題是,如果你真的用得很快,而且它是一個普通的4字節int,那麼你可以很快用完所有的值。出於這個原因,當你不確定它們將被用完時,使用bigint/bigserial是一個好主意。 – 2012-07-31 22:29:24