Задавайте вопросы, мы ответим
Вы не зашли.
Всегда пользовалась только утф8, после апграйда прошлась по всем таблицам и сменила, всё, что только можно на утф8мб64. И по ходу дела задалась вопросом. Если я точно знаю, что в поле не будет ничего кроме латинских знаков, имеет ли смысл дать ему другую кодировку?
Очевидный профит - меньше байт занимаемого места, но там где это можно сделать, это обычно такие, не очень ёмкие моменты, типа локализаций, сокращений валюты и прочих ISO кодов.
Возможный профит - а не увеличит ли это скорость поиска, учитывая, что некоторые из полей активно используются при выборке и являются самостоятельными ключами, либо входят в состав ключей?
Неактивен
Если на поле стоит индекс, то он также будет короче, если использовать latin1. В ряде случаев это оправдано.
Неактивен
rgbeast написал:
В ряде случаев это оправдано.
Можно по подробнее?
Неактивен
- Если объем индекса меньше, то он может поместиться в кэш и тогда поиск будет быстрее.
- Если индекса составной, то может сработать ограничение на длину индекса. В latin1 в него можно больше вместить.
- другие варианты, все зависит от ситуации
Отрицательные стороны конвертации в latin1:
- ошибка проектирования и на самом деле в этих полях должны быть символы UTF.
- требуется сравнение этих полей с полями UTF. В этом случае потрубутся явная или неявная конвертация.
В итоге стоит конвертировать только те поля, польза от конвертации которых для производительности очевидна.
Неактивен