Какова идеальная настройка кодировки для базы данных, поддерживающей многоязычность? - PullRequest
1 голос
/ 15 ноября 2011

Согласно MySQL , руководство , MySQL включает поддержку набора символов, который позволяет нам хранить данные с использованием различных наборов символов и выполнять сравнения в соответствии с различными параметрами сортировки. Наборы символов можно указывать на четырех разных уровнях :

  • Сервер
  • База данных
  • Таблица
  • Колонка

Предполагается, что у меня есть база данных, в которой хранится следующее:

  • ID пользователя (INT)
  • Адрес электронной почты (VARCHAR 50)
  • Профиль пользователя (TEXT - многоязычный)
  • Системный флаг (только CHAR 1 - a-z)

Между Latin1 и UTF-8, какой я должен выбрать для четырех различных уровней для достижения наилучшей производительности?

ДОБАВИТЬ ПРИМЕЧАНИЕ: Это просто упрощенный пример. В реальном сценарии можно ожидать сохранения нескольких столбцов (a-zA-Z0-9) и одного или двух столбцов для хранения многоязычного текста. Вот почему я беспокоюсь о производительности.

ДОБАВИТЬ ПРИМЕЧАНИЕ2: Я имею в виду базу данных, в которой хранятся миллионы записей. Вот почему производительность важна для меня.

Ответы [ 2 ]

1 голос
/ 15 ноября 2011

Я могу ошибаться, но по моему опыту набор символов, который вы выбрали, на самом деле не оказывает большого влияния на общую производительность вашей базы данных (если вы начнете смешивать их в разных таблицах, то теперь это может повлиять на производительность запросов).

Если вы хотите поддерживать несколько языков, выберите utf8 (или даже utf16).

0 голосов
/ 15 ноября 2011

Вы должны выбрать одинаковую кодировку для всей базы данных.В противном случае вы как разработчик будете в замешательстве позже.А поскольку текст многоязычный, в качестве кодировки по вашему выбору остается только utf8.

Обратите внимание, что вы можете выбрать кодировку для подключения к базе данных .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...