2009-09-20 2 views
2

Просто быстро один:Mysql ASCII Unicode против

подберет ... WHERE имя LIKE '...' запрос будет быстрее, если имя столбца ASCII, а затем UTF-8?

Спасибо!

ответ

6

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

Может быть немного незначительные накладные расходы для преобразования текстовых кодировок, но это не будет ничего рядом с накладными расходами на фактический запуск запроса.

+0

Спасибо, это то, что я, хотя. – David

5

Я провел несколько тестов времени для набора символов MySQL 5. Кодировка символов столбца влияет на скорость: если столбец UTF8, то он на 60% дольше обрабатывает текст, чем если бы он был ASCII или Latin1 , Это верно, возвращаются ли результаты в том же наборе символов, что и столбец, или преобразуется, и он не зависит от набора символов запроса. Только набор символов столбца имеет значение!

НО, прежде чем вы уйдете и преобразуете все в ASCII, поймите, что этот 60% -ный удар относится только к части обработки текста в базе данных, а в целом операции доступа к строке и индексирования занимают в несколько раз эту крошечную разницу. Например, на современном, но дешевом сервере Linux, я измерил разницу как стоимость всего 16 мс на мегабайт текста.

Во всех, кроме самых критических ситуациях, это крошечное различие хорошо стоит для достижения согласованного рабочего процесса UTF-8.

Смежные вопросы