2015-11-06 3 views
1

Я читал много о реализации UUID в postgres, потому что мне нужно иметь возможность генерировать мои идентификаторы в некоторых случаях до их отправки в базу данных. Многие чтения, которые я сделал, предупреждают о влиянии UUID на производительность. Они упоминают, как непоследовательный первичный ключ резко снизит производительность.PostgreSQL: генерировать пользовательский UUID в MongoDB-ObjectID как первичный ключ

UUID v4 бесполезен, так как использование всех случайных чисел для вычисления идентификатора является непоследовательным, поскольку оно случайное. Я хочу использовать v1, но включение MAC-адреса в идентификатор кажется ненужным и небезопасным. То, что я хочу сделать, - это создать UUID в стиле ObjectID в стиле MongoDB. Я хочу, чтобы он в основном состоял из имени метки и имени таблицы, так что, когда идентификаторы сортируются, они сортируются в последовательном порядке.

Есть ли способ сделать там, где я могу сгенерировать этот пользовательский UUID и сохранить Postgres в последовательном порядке на основе метки времени на uuid?

+0

* Они упоминают, как непоследовательный первичный ключ резко снизит производительность. *. Какие? А? Цитаты. URL-адреса, названия статей и т. Д. Основная проблема с UUID заключается в том, что он имеет ширину 128 байтов, поэтому ваши индексы больше и медленнее запрашивать. –

+0

О, вы планируете использовать uuid вместо метки времени или полагаться на временную метку, встроенную в v1 uuid. Не делай этого. Сохраните временную метку. –

ответ

Смежные вопросы