SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 08.08.2014 13:05:12

animegirl
Активист
Зарегистрирован: 28.07.2011
Сообщений: 288

Разные кодировки в одной таблице

Всегда пользовалась только утф8, после апграйда прошлась по всем таблицам и сменила, всё, что только можно на утф8мб64. И по ходу дела задалась вопросом. Если я точно знаю, что в поле не будет ничего кроме латинских знаков, имеет ли смысл дать ему другую кодировку?

Очевидный профит - меньше байт занимаемого места, но там где это можно сделать, это обычно такие, не очень ёмкие моменты, типа локализаций, сокращений валюты и прочих ISO кодов.
Возможный профит - а не увеличит ли это скорость поиска, учитывая, что некоторые из полей активно используются при выборке и являются самостоятельными ключами, либо входят в состав ключей?


Скажи миру - НЯ!

Неактивен

 

#2 08.08.2014 16:49:19

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Разные кодировки в одной таблице

Если на поле стоит индекс, то он также будет короче, если использовать latin1. В ряде случаев это оправдано.

Неактивен

 

#3 08.08.2014 16:58:03

animegirl
Активист
Зарегистрирован: 28.07.2011
Сообщений: 288

Re: Разные кодировки в одной таблице

rgbeast написал:

В ряде случаев это оправдано.

Можно по подробнее?


Скажи миру - НЯ!

Неактивен

 

#4 08.08.2014 17:07:29

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Разные кодировки в одной таблице

- Если объем индекса меньше, то он может поместиться в кэш и тогда поиск будет быстрее.
- Если индекса составной, то может сработать ограничение на длину индекса. В latin1 в него можно больше вместить.
- другие варианты, все зависит от ситуации

Отрицательные стороны конвертации в latin1:
- ошибка проектирования и на самом деле в этих полях должны быть символы UTF.
- требуется сравнение этих полей с полями UTF. В этом случае потрубутся явная или неявная конвертация.


В итоге стоит конвертировать только те поля, польза от конвертации которых для производительности очевидна.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson