Autor | Zpráva | ||
---|---|---|---|
MaK Profil |
#1 · Zasláno: 4. 12. 2014, 09:48:41
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 |
#2 · Zasláno: 4. 12. 2014, 10:01:00
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. |
||
Časová prodleva: 9 let
|
0