Влияет ли набор символов и сопоставление на производительность запросов в MySQL / MariaDB? - PullRequest
0 голосов
/ 10 марта 2020

Я работал над базой данных с большой и расширяющейся базой данных в MariaDB. Доступ к базе данных осуществляется приложением PHP.

Я установил набор символов и параметры сортировки БД в utf8mb4 и utf8mb4_unicode_ci

Но не во всех моих таблицах есть текст (varchar, text et c .) столбцы. В некоторых таблицах содержатся только отношения, поэтому все столбцы являются числовыми типами (int, bigint et c) или дата / время et c. дополнительно, но не текстовые типы.

В таблицах, где я храню только цифры, нужно ли мне хранить многобайтовый набор символов Юникод / ​​сопоставление или я могу выбрать что-то еще?

Самое главное это влияет на производительность запроса ?

Ответы [ 2 ]

1 голос
/ 10 марта 2020

Даже если в вашей таблице есть параметры сортировки и набора символов, столбцы со значениями чисел c не нуждаются в определении параметров сортировки и набора символов. Следовательно, неуместно выбирать что-то подобное. Вы можете создать таблицу, как показано ниже, без определения параметров сортировки для числовых столбцов c:

CREATE TABLE t1
(
    c0 INT NOT NULL,
    c1 CHAR(10) CHARACTER SET latin1
) DEFAULT CHARACTER SET latin1 COLLATE latin1_danish_ci;

Да, это влияет на производительность запросов. Пожалуйста, знайте, что набор символов - это, по сути, один символ, который сохраняется с другим количеством байтов. Если есть только алфавиты Engli sh, обычно лучшим набором символов является латиница. Кроме того, в зависимости от вашей версии MySQL различные наборы символов дают разную производительность. Пожалуйста, обратитесь к этой статье. Это может помочь.

https://www.percona.com/blog/2019/02/27/charset-and-collation-settings-impact-on-mysql-performance/

0 голосов
/ 11 марта 2020

Вещи, влияющие на производительность, примерно в порядке :

  • Плохая индексация
  • Плохая формулировка запросов
  • Дисковый ввод-вывод
  • Количество строк, которые необходимо прочитать, чтобы удовлетворить запрос
  • В нижней части этого списка: выражения, функции, набор символов, сопоставления и т. Д. c.

То есть Используйте нужные вам наборы символов и сопоставления; не беспокойтесь о производительности .

...