Dlaczego domyślnym sortowaniem MySQL jest latin1_swedish_ci?
112
Jaki jest powód ustawienia latin1_swedish_cijako skompilowanej wartości domyślnej, gdy inne opcje wydają się znacznie bardziej rozsądne, takie jak latin1_general_cilub utf8_general_ci?
Należy pamiętać, że utf8_general_cinie obsługuje 4-bajtowego UTF-8, więc dla prawdziwej obsługi UTF-8 chcesz utf8mb4_general_cilub jednego z innych mb4wariantów.
On jest fiński, ale fiński i szwedzki share prawie te same znaki specjalne, więc mają tę samą wielkość liter ma znaczenie sortowania
kommradHomer
5
Mówiąc o „dobrych ustawieniach domyślnych”. A to oczywiście nie jest. Wspaniale to widzieć po jakich 20 latach? zmienili to na rozsądne domyślne, na przykład utf8_general_ci. Dobra robota, MySQL!
Michael Trouw
2
i pomyślałem, że to będzie najlepsze dla mnie, bo nie jestem ekspertem. Moje życie to kłamstwo
Pablo Escobar
3
Tak, masz rację, nazwał MariDB (imię żony to Maria) i MaxDB (imię jego syna Max). ale dlaczego zostawił imię swojej Córki…! :) LOL. !
Ajmal Praveen
90
latin1_swedish_cijest zestawem znaków jednobajtowych, w przeciwieństwie do utf8_general_ci.
W porównaniu z latin1_general_cinim obsługuje wiele dodatkowych znaków używanych w językach europejskich. Dlatego jest to najlepszy wybór, jeśli nie wiesz, jakiego języka będziesz używać, jeśli jesteś zmuszony używać tylko zestawów znaków jednobajtowych.
Podoba mi się ta odpowiedź, ponieważ próbuje obiektywnie uzasadnić wybór łacińskiego szwedzkiego. Jednak przyjęta odpowiedź wydaje się bardziej prawdopodobnym, ze społecznego punktu widzenia, wyjaśnieniem, dlaczego wybrano w szczególności język szwedzki.
Alan
2
Jest z pewnością możliwe, że takie było rozumowanie autora i to tylko zbieg okoliczności, że jest Szwedem. Wydaje się rozsądne, że Szwed chciałby (i wiedział) wspierać dodatkowe postacie europejskie.
Matt
3
-1 Przyjęta odpowiedź może być tylko opinią, ale jest ona 100 razy bardziej uzasadniona niż ta odpowiedź. Możesz też zobaczyć, że „facet, który to napisał” również nazwał MariaDB po swojej córce, a maxDB po swoim synu.
kommradHomer
2
„latin1_general_ci obsługuje wiele dodatkowych znaków używanych w językach europejskich” - żeby to wyjaśnić, utf8_general_ci, w przeciwieństwie do utf8_unicode, ma szerokie wsparcie dla znaków specyficznych dla języków europejskich. Nie widzę przewagi nad „latin1_swedish_ci”. A może się mylę?
MEM
Na przykład CHAR (2) latin1 wykorzystuje 2 bajty, CHAR (2) utf8mb4 (który jest pełnym utf8) wykorzystuje 8 bajtów. Używam latin1 do przechowywania dwucyfrowych kodów krajów, ponieważ nigdy nie będzie znaków spoza Europy
utf8_general_ci
nie obsługuje 4-bajtowego UTF-8, więc dla prawdziwej obsługi UTF-8 chceszutf8mb4_general_ci
lub jednego z innychmb4
wariantów.Odpowiedzi:
Facet, który to napisał, był współzałożycielem szwedzkiej firmy .
Prawdopodobnie z podobnych powodów domyślny język Microsoft SQL Server us_english.
źródło
utf8_general_ci
. Dobra robota, MySQL!latin1_swedish_ci
jest zestawem znaków jednobajtowych, w przeciwieństwie doutf8_general_ci
.W porównaniu z
latin1_general_ci
nim obsługuje wiele dodatkowych znaków używanych w językach europejskich. Dlatego jest to najlepszy wybór, jeśli nie wiesz, jakiego języka będziesz używać, jeśli jesteś zmuszony używać tylko zestawów znaków jednobajtowych.źródło