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

utf8_bin vs. utf_unicode_ci

Záleží na tom, co potřebujete.

utf8_bin řazení porovnává řetězce čistě na základě jejich Unicode bod kódu hodnoty. Pokud mají všechny body kódu stejné hodnoty, pak jsou řetězce stejné. To se však rozpadá, když máte řetězce s různým složením pro kombinování značek (složené vs. dekomponované) nebo znaky, které jsou kanonicky ekvivalentní, ale nemají stejnou bodovou hodnotu kódu. V některých případech pomocí utf8_bin povede k tomu, že se řetězce nebudou shodovat, když to očekáváte. Teoreticky utf8_bin je nejrychlejší, protože na řetězce není aplikována žádná normalizace Unicode, ale nemusí to být to, co chcete.

utf8_general_ci používá normalizaci Unicode pomocí pravidel specifických pro daný jazyk a porovnává řetězce bez ohledu na velikost písmen. utf8_general_cs dělá totéž, ale porovnává řetězce s rozlišením velkých a malých písmen.



  1. Pochopení příkazů PIVOT, UNPIVOT a Reverse PIVOT

  2. Mohu zřetězit více řádků MySQL do jednoho pole?

  3. Porovnání datových úložišť pro PostgreSQL - MVCC vs InnoDB

  4. Kombinace výkonu SQL a procedurálních příkazů s režimem kompatibility Oracle MariaDB