Каковы лучшие практики для генерации UUID (ПЕРВИЧНЫЙ КЛЮЧ)
пусть он генерирует в конце Mysql ИЛИ
пусть он генерирует в конце PHP
делать некоторые тесты производительности я нахожу генерацию его в конце PHP немного быстрее
но делая некоторые Google, я нахожу, что многие практикуют его, чтобы генерировать в конце MySQL
http://instagram-engineering.tumblr.com/post/10853187575/sharding-ids-at-instagram
так, что было бы правильным способом сделать это для постоянно растущих данных?
Если вы хотите вставить строки из разных приложений, тогда генерация UID через БД безопасный метод, потому что реализация централизована и, конечно, не будет меняться между приложениями.
Допустим, вы решили создать API на другом языке. Затем вам нужно будет реализовать тот же генератор на этом языке. Могут быть различия в том, как этот другой язык реализует функции, на которые вы полагаетесь для генерации ключевых данных, что приводит к дублированию ключей.
Если вы собираетесь вставлять строки из PHP только на свой сервер, не имеет значения, генерируете ли вы UID в приложении или в БД.
Безопасный не всегда право. Или практично. Взвесьте все за и против ваших предполагаемых вариантов использования и переходите оттуда.
Вы можете попробовать очень хороший класс PHP Чистый PHP UUID Генератор
Пример:
UUID::v5('1546058f-5a25-4334-85ae-e68f2a44bbaf', 'SomeRandomString');
Использование собственных функций UUID базы данных, вероятно, вызовет проблемы, если база данных будет реплицирована. В то же время я хотел бы подтвердить, что любые предварительно написанные генераторы UUID должны быть проверены для подтверждения того, что младший значащий байт UUID изменяется быстрее, чем самый значимый байт (для размещения кластеризации индекса базы данных).