Согласно MySQL , руководство , MySQL включает поддержку набора символов, который позволяет нам хранить данные с использованием различных наборов символов и выполнять сравнения в соответствии с различными параметрами сортировки. Наборы символов можно указывать на четырех разных уровнях :
- Сервер
- База данных
- Таблица
- Колонка
Предполагается, что у меня есть база данных, в которой хранится следующее:
- ID пользователя (INT)
- Адрес электронной почты (VARCHAR 50)
- Профиль пользователя (TEXT - многоязычный)
- Системный флаг (только CHAR 1 - a-z)
Между Latin1
и UTF-8
, какой я должен выбрать для четырех различных уровней для достижения наилучшей производительности?
ДОБАВИТЬ ПРИМЕЧАНИЕ: Это просто упрощенный пример. В реальном сценарии можно ожидать сохранения нескольких столбцов (a-zA-Z0-9) и одного или двух столбцов для хранения многоязычного текста. Вот почему я беспокоюсь о производительности.
ДОБАВИТЬ ПРИМЕЧАНИЕ2: Я имею в виду базу данных, в которой хранятся миллионы записей. Вот почему производительность важна для меня.