Чому порівняння за замовчуванням MySQL latin1_swedish_ci?


112

Яке обґрунтування встановлення latin1_swedish_ciяк складеного за замовчуванням, коли інші параметри здаються набагато більш розумними, як-от latin1_general_ciабо utf8_general_ci?




1
Зверніть увагу, що utf8_general_ciвін не підтримує 4-байтовий UTF-8, тому для справжньої підтримки UTF-8 ви хочете, utf8mb4_general_ciабо один з інших mb4варіантів.
ColinM

Відповіді:


109

Блок, який це написав, був співголовою шведської компанії .

Можливо, з подібних причин мова за замовчуванням Microsoft SQL Server us_english.


5
Він є фінським, але фінські та шведські мають майже однакові особливі символи, тому вони поділяють одне й те саме нечутливе порівняння
kommradHomer

5
Якщо говорити про "хороші за замовчуванням". Що це, звичайно, ні. Чудово бачити, що після чого, 20 років? вони змінили це на здоровий дефолт, як utf8_general_ci. Гарна робота, MySQL!
Майкл Трув

2
і я подумав, що це може бути найкращим для мене, але ж я не експерт. Мій час життя - брехня
Пабло Ескобар

3
Так, ви праві, він назвав MariDB (ім'я дружини - Марія) та MaxDB (його син звуть Макс). але чому він залишив своє ім’я Дочка ..! :) ЛОЛ. !
Аджмал Правен

89

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