MySQL notes recommend legacy utf8_general_ci unicode collation
|Reported by:||tobami@…||Owned by:||mardini|
|Has patch:||no||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
The documentation section "MySQL notes" recommends the obsolete utf8_general_ci collation settings:
"By default, with a UTF-8 database, MySQL will use the utf8_general_ci collation." 
"... you should still use utf8_general_ci (the default) collation for the django.contrib.sessions.models.Session table"
While it may still be the default depending on your MySQL version, MySQL itself recommends utf8_unicode_ci instead of utf8_general_ci, as the later can be incorrect for some characters and languages and its performance benefits are no longer relevant. From the MySQL docs themselves:
"utf8_general_ci is a legacy collation that does not support expansions, contractions, or ignorable characters." 
Using utf8_general_ci can be the cause of difficult to debug text issues.
IMO Django should update its MySQL collation recommendation to utf8_unicode_ci.
Change History (6)
comment:1 Changed 2 years ago by aaugustin
- Needs documentation unset
- Needs tests unset
- Patch needs improvement unset
- Triage Stage changed from Unreviewed to Accepted
comment:2 Changed 2 years ago by mardini
- Owner changed from nobody to mardini
- Status changed from new to assigned
comment:4 Changed 2 years ago by Tim Graham <timograham@…>
- Resolution set to fixed
- Status changed from assigned to closed