sql >> Databáze >  >> RDS >> Mysql

Porovnání MySQL pro ukládání vícejazyčných dat neznámého jazyka

Měli byste použít řazení Unicode. Můžete jej nastavit ve výchozím nastavení na vašem systému nebo na každém poli vašich tabulek. Existují následující názvy řazení Unicode a toto jsou jejich rozdíly:

utf8_general_ci je velmi jednoduché řazení. Prostě – odstraní všechny diakritické znaménka – pak se převede na velká písmena a použije kód tohoto typu písmene „základního“ výsledku k porovnání.

utf8_unicode_ci používá výchozí tabulku prvků řazení Unicode.

Hlavní rozdíly jsou:

  1. utf8_unicode_ci podporuje tzv. expanze a ligatury, například:německé písmeno ß (U+00DF LETTER SHARP S) je seřazeno blízko "ss" Písmeno Œ (U+0152 LATIN CAPITAL LIGATURE OE) je seřazeno blízko "OE".

utf8_general_ci nepodporuje rozšíření/ligatury, třídí všechna tato písmena jako jednotlivé znaky a někdy ve špatném pořadí.

  1. utf8_unicode_ci je obecně přesnější pro všechny skripty. Například v bloku azbuky:utf8_unicode_ci je v pořádku pro všechny tyto jazyky:ruština, bulharština, běloruština, makedonština, srbština a ukrajinština. Zatímco utf8_general_ci je v pořádku pouze pro ruskou a bulharskou podmnožinu azbuky. Dodatečná písmena použitá v běloruštině, makedonštině, srbštině a ukrajinštině nejsou dobře tříděna.

+/- Nevýhodou utf8_unicode_ci je, že je o něco pomalejší než utf8_general_ci.

V závislosti na tom, zda víte nebo ne, které konkrétní jazyky/znaky budete používat, vám doporučuji použít utf8_unicode_ci, který má větší pokrytí.



  1. MariaDB JSON_COMPACT() vysvětleno

  2. Najděte záznamy z jedné tabulky, které v jiné neexistují

  3. MySQL Workbench zobrazuje výsledky jako BLOB

  4. Obnovte strukturu tabulky ze souborů frm a ibd