File tree Expand file tree Collapse file tree 1 file changed +15
-1
lines changed Expand file tree Collapse file tree 1 file changed +15
-1
lines changed Original file line number Diff line number Diff line change @@ -344,6 +344,14 @@ entity primary keys::
344344 // ...
345345 }
346346
347+ .. caution ::
348+
349+ Using UUIDs as primary keys is usually not recommended for performance reasons:
350+ indexes are slower and take more space (because UUIDs in binary format take 128 bits
351+ instead of 32/64 bits for auto-incremental integers) and the non-sequential nature of
352+ UUIDs fragments indexes. UUID v7 is the only variant that solves the fragmentation
353+ issue (but the index size issue remains).
354+
347355When using built-in Doctrine repository methods (e.g. ``findOneBy() ``), Doctrine
348356knows how to convert these UUID types to build the SQL query
349357(e.g. ``->findOneBy(['user' => $user->getUuid()]) ``). However, when using DQL
@@ -530,9 +538,15 @@ entity primary keys::
530538 }
531539
532540 // ...
533-
534541 }
535542
543+ .. caution ::
544+
545+ Using ULIDs as primary keys is usually not recommended for performance reasons.
546+ Although ULIDs don't suffer from index fragmentation issues (because the values
547+ are sequential), their indexes are slower and take more space (because ULIDs
548+ in binary format take 128 bits instead of 32/64 bits for auto-incremental integers).
549+
536550When using built-in Doctrine repository methods (e.g. ``findOneBy() ``), Doctrine
537551knows how to convert these ULID types to build the SQL query
538552(e.g. ``->findOneBy(['user' => $user->getUlid()]) ``). However, when using DQL
You can’t perform that action at this time.
0 commit comments