> Looking at creating a new database in a Win32 server that is expected to grow > quite large and trying to decide whether to use GUIDs or BIGINT for the > primary key. Will likely be using SuperServer architecture. > > Besides hosting local data at each server, some or all of the data in the new > database may need to periodically be sent to a group or corporate server for > further analysis and reports so GUIDs look attractive. > > Any significant difference in performance on GUIDs as primary keys in > versions 1.5.6 and 2.5? > > Any significant difference in performance on GUIDs as primary keys in > versions 2.5? > > Where can I find out more about whether it matters a lot if GUIDs are used as > primary keys instead of the normal BIGINT sequences by generators? > > Which would be better?
In a test scenario, I had a mixed feeling about using GUIDs. They are longer than BIGINT and the random values, when used in an indexed column like a PK constraint, makes bulk operations slower than using integer. At least this was my result quite some time ago. What I also don't like about GUID is, if you don't have additional fields storing the "source" of the record, you aren't able to tell from what location/server the record has been added. When using a BIGINT feed by a generator, you can set a starting value per site/server and that way, you somehow "know" the source of insertion when merging the satellite databases with a central database. -- With regards, Thomas Steinmaurer (^TS^) Firebird Technology Evangelist http://www.upscene.com/ http://www.firebirdsql.org/en/firebird-foundation/
