Является ли ключевое слово SELECT чувствительным к регистру в кеше запросов MySQL? - PullRequest
0 голосов
/ 15 марта 2012

В главе Query Performance из книги High Performance MySQL (2004) говорится, что MySQL (4.0.1) пытается найти результаты любого запроса SELECT в кеше запроса, прежде чем пытаться проанализировать или выполнить его. MySQL использует точный текст запроса, который он получает, поэтому кэш чувствителен, что означает

SELECT * FROM table1

отличается от

select * FROM table1

Я хотел бы знать, так ли это в MySQL 5.x, поэтому мы всегда должны набирать «SELECT» вместо «select».

Ответы [ 2 ]

5 голосов
/ 12 апреля 2012

Кэш запросов MySQL чувствителен к регистру (и байту) .

Входящие запросы сравниваются с запросами в кэше запросов перед анализом, поэтому рассматриваются следующие два запросаотличается от кеша запросов:

SELECT * FROM tbl_name
Select * from tbl_name

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

0 голосов
/ 15 марта 2012

Это не так, но вы бы знали, что если бы вы попробовали это!

РЕДАКТИРОВАТЬ: Ни одно из следующих действий, на случай, если вам интересно.

  1. Вставить
  2. Где
  3. Из
  4. Выбрать (сверху)
  5. Порядок
  6. Любой из других!
...