Sto osservando il modo in cui gli UUID sono archiviati in MySQL. MySQL 8 non ha ancora un tipo di dati UUID, e non ha ancora tipi personalizzati, quindi ci sono due opzioni: memorizzarlo come stringa o come binario.
Il modulo binario risparmia il 30% di spazio e funziona molto meglio, secondo la mia esperienza.
Sfortunatamente la forma binaria è molto più problematica per lo sviluppo / manutenzione / supporto, dal momento che non è leggibile / copiabile / incollabile. Al punto che rende inaccettabile la forma binaria.
MySQL 8 ha nuove funzioni che dovrebbero rendere un po 'più facile la vita con gli UUID binari, ma non vedo come qualcuno che ha a che fare con DB su base giornaliera possa felicemente digitare BIN_TO_UUID(some_id)
per visualizzare l'ID effettivo e UUID_TO_BIN('...')
ogni volta che desidera vedere / aggiornare alcuni record.
Sto cercando di capire quale sarebbe il modo accettabile (non doloroso) di gestire gli UUID binari nella vita di tutti i giorni? Un modo in cui potevo pensare era creare una funzione alias, come U(some_id)
, ma MySQL non ha ancora funzioni globali.
Ci sono altre opzioni? Come impostare un qualche tipo di filtro trasparente tra DB e client, all'interno di un client o qualcosa del genere?