Mysql
 sql >> база данни >  >> RDS >> Mysql

Разликите между INT и UUID в MySQL

UUID връща универсален уникален идентификатор (надявам се също уникален, ако се импортира и в друга DB).

Да цитирам от MySQL doc (подчертавам моя):

От друга страна просто INT първичен идентификационен ключ (напр. AUTO_INCREMENT ) ще върне уникално цяло число за конкретната DB и DB таблица, но която е не универсално уникална (така че ако се импортира в друга DB има вероятност да има конфликти на първичен ключ).

По отношение на производителността не би трябвало да има забележима разлика при използване на auto-increment през UUID . Повечето публикации (включително някои от авторите на този сайт) се посочват като такива. Разбира се UUID може да отнеме малко повече време (и място), но това не е пречка за производителността за повечето (ако не всички) случаи. Да има колона като Primary Key трябва да направи и двата избора равни спрямо производителността. Вижте препратките по-долу:

  1. До UUID или не към UUID ?
  2. Митове, GUID срещу Autoincrement
  3. Ефективност:UUID срещу auto-increment в cakephp-mysql
  4. UUID производителност в MySQL?
  5. Първични ключове:ID s срещу GUID s (ужас за кодиране)

(UUID срещу auto-increment резултати от производителността, адаптирани от Митове, GUID срещу Autoincrement )

UUID плюсове/противи (адаптирано от Първични ключове:ID s срещу GUID с )

Забележка

Ще прочета внимателно споменатите препратки и ще реша дали да използвам UUID или не в зависимост от моя случай на употреба. Въпреки това в много случаи UUID s наистина би било за предпочитане. Например може да се генерира UUID s без изобщо да използвате/достъпвате до базата данни или дори да използвате UUID s, които са били предварително изчислени и/или съхранени някъде другаде. Освен това можете лесно да обобщите/актуализирате вашата схема на база данни и/или схема за клъстериране, без да се притеснявате за ID s нарушаване и причиняване на конфликти.

По отношение на възможни сблъсъци, например използване на v4 UUIDS (случаен), вероятността да се намери дубликат в рамките на 103 трилиона UUID на версия-4 е едно на милиард.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Намаляване на стойността в mysql, но не отрицателно

  2. Групиране по период от време на интервал от седмици/месеци

  3. Как мога да завърша асинхронно повикване, за да се държи синхронно?

  4. Функция MySQL MOD() – Извършване на модулна операция в MySQL

  5. Код на грешка:2013. Загубена връзка с MySQL сървър по време на заявка