Розділ Query Performance з HighПродуктивність MySQL book (2004) говорить про те, що MySQL (4.0.1) намагається знайти результати будь-якого запиту "SELECT" в кеші запитів перед тим, як його аналізувати або виконувати. MySQL використовує точний текст запиту, який він отримує, тому кеш чутливий, що означає
SELECT * FROM table1
відрізняється від
select * FROM table1
Я хотів би знати, чи так це все ще в MySQL 5.x, тому ми повинні завжди вводити "SELECT" замість "select".
Відповіді:
0 для відповіді № 1Це не так, але ви б знали, що якщо ви спробуєте це зробити!
EDIT: Не є й наступні, на всякий випадок, коли ви дивувалися.
- Вставити
- Де
- Від
- Виберіть (вище)
- Замовлення
- Будь-який з інших!
4 для відповіді № 2
Кеш запитів MySQL - це case (і byte) чутливі.
Вхідні запити порівнюються з тими, що містяться в кеші запитів, до розбору.
SELECT * FROM tbl_name Select * from tbl_name
Запити повинні бути однаковими (байт для байта)вважається ідентичним. Крім того, рядки запитів, які є ідентичними, можуть розглядатися як різні з інших причин. Запити, які використовують різні бази даних, різні версії протоколів або різні набори символів за замовчуванням, вважаються різними запитами і кешуються окремо.