몇 가지 대략적인 벤치 마크 :
Postgres 9.x의 4 백만 레코드
Table A = base table with some columns
Table B = Table A + extra column id of type bigint with random numbers
Table C = Table A + extra column id of type text with random 16-char ASCII strings
8GB RAM, i7, SSD 노트북의 결과 :
Size on disk: A=261MB B=292MB C=322MB
Non-indexed by id: select count(*), select by id: 450ms same on all tables
Insert* one row per TX: B=9ms/record C=9ms/record
Bulk insert* in single TX: B=140usec/record C=180usec/record
Indexed by id, select by id: B=about 200us C=about 200us
* inserts to the table already containing 4M records
따라서 인덱스가 RAM에 맞는 한, bigint 대 16-char 텍스트는 속도에 차이가 없습니다.