Шаблоны первичных ключей для федеративных (горизонтально разделенных) баз данных

Я заранее прошу прощения, если это дубликат, я не уверен, что именно я должен искать.

Недавно я посмотрел это отличное видео на 9 канале о федерации базы данных в SQL Azure. Сначала меня удивил тот факт, что столбцы идентификаторов не поддерживаются федерацией SQL Azure, но это имеет смысл. Если у вас есть таблица, которая разделена между 2 (или более) базами данных, и у них нет возможности поделиться своим значением приращения идентификатора, вы можете получить 2 (или более) сущностей, имеющих один и тот же первичный ключ.

Видео слегка коснулось того, как решить эту проблему, упомянув об использовании чего-то вроде Guid для PK вместо целочисленного столбца идентификаторов. Я знаю, что по крайней мере MSSQL по умолчанию будет создавать кластеризованный индекс на ПК, и плохо иметь кластеризованный индекс по типу Guid (или uniqueidentifier). Я ни в коем случае не эксперт по реляциям, но я также считаю, что Guid имеет снижение производительности по сравнению с целочисленными типами для поиска на основе PK.

Так что мне стало интересно, как может выглядеть целочисленный PK-шаблон для горизонтально-федеративной базы данных? Когда я писал EJB-файлы старой школы и нам нужно было сгенерировать целое число для первичного ключа, мы должны были иметь отдельную таблицу поиска последовательностей, чтобы заменить функции идентификации / автоинкремента rdbms. Я помню, это было больно, как и многие другие вещи с EJB были тогда.

Каковы общепринятые шаблоны, если таковые имеются, для назначения первичных ключей в таблице базы данных с горизонтальной федерацией? Учитывая мои текущие знания, я бы отказался от Guid из-за снижения производительности, и я бы отказался от последовательных индексов поиска из-за стоимости разработки и дополнительной сложности (в основном стоимости разработки). На что я должен опираться?

1 ответ

Решение

Нечто подобное может быть полезным, в зависимости от характера вашего приложения

http://blog.tatham.oddie.com.au/2011/07/14/released-snowmaker-a-unique-id-generator-for-azure-or-any-other-cloud-hosting-environment/

Другие вопросы по тегам