Thelema
@Thelema

Влияет ли различные кодировки таблиц на производительность MySQL?

Добрый день! Подскажите, если в базе mysql (версия 5.7) часть таблиц в utf8mb4_general_ci, а другая в utf8_general_ci. Влияет ли это как-то на производительность mysql?
  • Вопрос задан
  • 234 просмотра
Решения вопроса 1
@Akina
Сетевой и системный админ, SQL-программист.
если в базе mysql (версия 5.7) часть таблиц в utf8mb4_general_ci, а другая в utf8_general_ci

:facepalm: Это не кодировки! Это COLLATION - набор правил для сравнения строковых значений.

Хотя справедливости ради следует сказать, что возможные COLLATION определяются использованным CHARACTER SET. А для показанных значений они различны - utf8mb4_general_ci указывает на UTF8MB4, а utf8_general_ci на UTF8, который для этой версии СУБД является алиасом UTF8MB3.

Влияет ли это как-то на производительность mysql?

Если выполняется сравнение строковых значений (либо иная обработка таких значений в пределах одного выражения) с указанными CHARSET/COLLATION - несомненно, поскольку перед сравнением как минимум одно из значений должно подвергнуться конвертированию CHARSET, а это ресурсы.

Если нет - то на производительность именно СУБД это влияет слабо. Заметное влияние будет при прогреве кэшей, а также в случае ну очень объёмных таблиц.

Плюс гарантированное преобразование финального набора записей при несовпадении CHARSET поля и клиентского соединения.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Проверьте вместо глупых вопросов.
Есть профайлеры, есть вариант написать свой код.
Ответ написан
ipatiev
@ipatiev
Потомок старинного рода Ипатьевых-Колотитьевых
Нет, не влияет.
Если хотите чтобы у вас нормально сохранялись тексты, а не рубились на половине, используйте utf8mb4
про utf8 давно пора забыть
Ответ написан
Комментировать
BasiC2k
@BasiC2k
.NET developer (open to job offers)
utf8mb4 - 4 байта на символ.
utf8 - 3 байта на символ.
При выборке двух больших одинаковых текстовых массивов, байтовый объём в первом случае будет на 25% больше.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы