Почему в MySQL по умолчанию используется сортировка latin1_swedish_ci?


112

Какова причина установки latin1_swedish_ciв качестве скомпилированного значения по умолчанию, когда другие параметры кажутся более разумными, например latin1_general_ciили utf8_general_ci?


6
Swedish только что купил эту честь [шутка]
zerkms


1
Обратите внимание, что utf8_general_ciон не поддерживает 4-байтовый UTF-8, поэтому для истинной поддержки UTF-8 вам может потребоваться utf8mb4_general_ciили один из других mb4вариантов.
ColinM

Ответы:


109

Человек, написавший это, был соруководителем шведской компании .

Возможно, по аналогичным причинам язык Microsoft SQL Server по умолчанию us_english.


5
Он финн, но в финском и шведском есть почти одинаковые специальные символы, поэтому у них одинаковая сортировка без
учета

5
Говоря о «хороших настройках по умолчанию». А это, конечно, не так. Приятно видеть это через 20 лет? они изменили это на нормальное значение по умолчанию, например utf8_general_ci. Отличная работа, MySQL!
Майкл Троу,

2
и я подумал, что это может быть лучше для меня, т.к. я не эксперт. Моя жизнь - ложь
Пабло Эскобар

3
Да, вы правы, он назвал MariDB (жену зовут Мария) и MaxDB (его сына зовут Макс). но почему он оставил свою Дочь имя ..! :) РЖУНИМАГУ. !
Ajmal Praveen

90

latin1_swedish_ci- это однобайтовый набор символов, в отличие от utf8_general_ci.

По сравнению с latin1_general_ciним он поддерживает множество дополнительных символов, используемых в европейских языках. Так что это лучший выбор, если вы не знаете, какой язык вы будете использовать, если вы ограничены использованием только однобайтовых наборов символов.


36
Мне нравится этот ответ, потому что он пытается объективно оправдать выбор латыни на шведском языке. Однако с социальной точки зрения принятый ответ кажется более правдоподобным объяснением того, почему именно шведский язык был выбран.
Алан

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-значных кодов стран, потому что никогда не будет неевропейских символов
the_nuts
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.