Re: Basic Q on superfluous primary keys

Поиск
Список
Период
Сортировка
От Dave Dutcher
Тема Re: Basic Q on superfluous primary keys
Дата
Msg-id 01db01c781e4$c700bf30$2e00a8c0@tridecap.com
обсуждение исходный текст
Ответ на Re: Basic Q on superfluous primary keys  ("Merlin Moncure" <mmoncure@gmail.com>)
Ответы Re: Basic Q on superfluous primary keys
Список pgsql-performance
I think a database with all natural keys is unrealistic.  For example if you
have a table that refers to people, are you going to use their name as a
primary key?  Names change all the time due to things like marriage,
divorce, or trouble with the law.  We have tables with 20 million rows which
reference back to a table of people, and if I used the person's name as key,
it would be a major pain when somebody's name changes.  Even if there is
referential integrity, one person might be referred to by 25% of the 20
million rows, so the update would take quite a long time.  Also the table
will be filled with dead rows and the indexes will likely be bloated.  If I
want to clean that up, it will take a vacuum full or a cluster which will
lock the whole table and run for hours.  If I use a surrogate key, I can
change their name in one row and be done with it.

Just my 2 cents.

Dave


В списке pgsql-performance по дате отправления:

Предыдущее
От: "Jim C. Nasby"
Дата:
Сообщение: Re: a question about Direct I/O and double buffering
Следующее
От: "Jim C. Nasby"
Дата:
Сообщение: Re: Long running transactions again ...