Autor Zpráva
MaK
Profil
Pokud má sloupec tabulky (table.x) nastaven CHARACTER SET na kódování rozdílné od utf8, ale zbytek serveru "běží" na utf8 (SET NAMES utf8), pak se domnívám, že při dotazu:

... WHERE table.x <> 'abc'

musí server řešit problém, jak porovnat dva řetězce v různých znakových sadách. Z toho mi vychází, že pokud bych chtěl serveru ušetřit starosti (zrychlit dotaz), měl bych všechny sloupce mít ve stejném kódování, byť by pro tyto sloupce stačilo např. ASCII (vyčtové typy, nečíselné identifikátory a pod.).

1. Je to správná úvaha nebo jsem něco přehlédl?
2. Je úzus pro sloupec nastavit kódování odpovídající obsahu sloupce nebo kódování odpovídající kódování celého serveru?


MaK
Kajman
Profil
Tuším, že při různých kódování mysql string převede. Problém naopak bývá, pokud je u dvou sloupců stejné kódování ale jiné porovnání a tyto sloupce chcete porovnat bez explicitního vyjádření, které z porovnání se má použít.

A ano, pokud server stále převádí z jednoho kódování do druhého, zabere to nějakou výkonovou režii.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: