Mysql
 sql >> база данни >  >> RDS >> Mysql

Как ръчно да изградите mysql кеш

Кешът на MySQL работи по различен начин в зависимост от това дали използвате машината за съхранение MyISAM или машината за съхранение InnoDB.

MyISAM кешира само индекси, не и данни. Можете да използвате LOAD INDEX INTO CACHE за предварително зареждане на MyISAM индекси в кеша на буфера на ключовете. Но няма еквивалентен израз, ако използвате InnoDB.

InnoDB кешира както данни, така и индексни страници. Няма специализирана команда за загряване на кеш буферите, но можете да изпълните няколко SQL оператора, които извършват пълно сканиране на таблици и пълно сканиране на индекс, за да ги заредите в буферите. Трябва да можете да направите това с помощта на скрипт на сървъра, без да прибягвате до wget !

Съгласен съм с отговора от @code_burgar:150 000 реда са достатъчно малко, за да не забележите голямо намаляване на производителността, докато кешът се загрява.

Ако говорите за загряване на кеша на заявките , това е друг въпрос. Ще трябва да загреете кеша на заявките, като използвате конкретни SQL заявки, тъй като този кеш пази набори от резултати, свързани с тези SQL заявки дословно. Вашият wget решението е неефективно и вероятно дублира много работа. Трябва да можете да заредите кеша на заявките, като стартирате скрипт на сървъра, който изпълнява всяка заявка, която искате да кеширате веднъж .

Но може да се наложи да направите преглед на кода, за да разберете какви са тези заявки, и периодично да актуализирате своя скрипт за предварително зареждане на кеша, ако кодът ви се промени.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да четете и разпечатвате данни от mysql в C#

  2. SQL заявка работи в phpmyadmin, но не и в php

  3. Как да изчислим оборота всеки семестър

  4. Анулиране на чакащи AJAX заявки в приложението PHP?

  5. Вътрешно присъединяване на Mysql с условие ИЛИ?