Почему в MySQL по умолчанию используется сортировка latin1_swedish_ci?
112
Какова причина установки latin1_swedish_ciв качестве скомпилированного значения по умолчанию, когда другие параметры кажутся более разумными, например latin1_general_ciили utf8_general_ci?
Обратите внимание, что utf8_general_ciон не поддерживает 4-байтовый UTF-8, поэтому для истинной поддержки UTF-8 вам может потребоваться utf8mb4_general_ciили один из других mb4вариантов.
Он финн, но в финском и шведском есть почти одинаковые специальные символы, поэтому у них одинаковая сортировка без
учета
5
Говоря о «хороших настройках по умолчанию». А это, конечно, не так. Приятно видеть это через 20 лет? они изменили это на нормальное значение по умолчанию, например utf8_general_ci. Отличная работа, MySQL!
Майкл Троу,
2
и я подумал, что это может быть лучше для меня, т.к. я не эксперт. Моя жизнь - ложь
Пабло Эскобар
3
Да, вы правы, он назвал MariDB (жену зовут Мария) и MaxDB (его сына зовут Макс). но почему он оставил свою Дочь имя ..! :) РЖУНИМАГУ. !
Ajmal Praveen
90
latin1_swedish_ci- это однобайтовый набор символов, в отличие от utf8_general_ci.
По сравнению с latin1_general_ciним он поддерживает множество дополнительных символов, используемых в европейских языках. Так что это лучший выбор, если вы не знаете, какой язык вы будете использовать, если вы ограничены использованием только однобайтовых наборов символов.
Мне нравится этот ответ, потому что он пытается объективно оправдать выбор латыни на шведском языке. Однако с социальной точки зрения принятый ответ кажется более правдоподобным объяснением того, почему именно шведский язык был выбран.
Алан
2
Конечно, возможно, что это были рассуждения автора, и просто совпадение, что он швед. Кажется разумным, что швед хотел бы (и знал) о поддержке дополнительных европейских персонажей.
Мэтт
3
-1 Принятый ответ мог бы быть просто мнением, но он в 100 раз разумнее этого ответа. Кроме того, вы можете видеть, что «парень, который это написал» также назвал MariaDB в честь своей дочери и maxDB в честь своего сына.
kommradHomer
2
"latin1_general_ci он поддерживает множество дополнительных символов, используемых в европейских языках" - чтобы было ясно, utf8_general_ci, в отличие от utf8_unicode, действительно имеет широкую поддержку символов, специфичных для европейских языков. Я не вижу преимущества перед "latin1_swedish_ci". Или я не прав?
MEM
Например, CHAR (2) latin1 использует 2 байта, CHAR (2) utf8mb4 (который является полным utf8) использует 8 байтов. Я использую latin1 для хранения 2-значных кодов стран, потому что никогда не будет неевропейских символов
utf8_general_ci
он не поддерживает 4-байтовый UTF-8, поэтому для истинной поддержки UTF-8 вам может потребоватьсяutf8mb4_general_ci
или один из другихmb4
вариантов.Ответы:
Человек, написавший это, был соруководителем шведской компании .
Возможно, по аналогичным причинам язык Microsoft SQL Server по умолчанию us_english.
источник
utf8_general_ci
. Отличная работа, MySQL!latin1_swedish_ci
- это однобайтовый набор символов, в отличие отutf8_general_ci
.По сравнению с
latin1_general_ci
ним он поддерживает множество дополнительных символов, используемых в европейских языках. Так что это лучший выбор, если вы не знаете, какой язык вы будете использовать, если вы ограничены использованием только однобайтовых наборов символов.источник