{"id":30,"date":"2006-06-12T22:09:21","date_gmt":"2006-06-12T22:09:21","guid":{"rendered":"http:\/\/www.olivierdoucet.info\/wordpress\/?p=30"},"modified":"2006-06-12T22:09:21","modified_gmt":"2006-06-12T22:09:21","slug":"25-le-systeme-de-cache-de-mysql","status":"publish","type":"post","link":"https:\/\/www.olivierdoucet.info\/blog\/2006\/06\/12\/25-le-systeme-de-cache-de-mysql\/","title":{"rendered":"Le syst\u00e8me de cache de MySQL"},"content":{"rendered":"<p>Saviez-vous que MySQL impl\u00e9mentait depuis la version 4.0 un syst\u00e8me de cache des requ\u00e8tes ? Mais savez-vous l&rsquo;utiliser ? Voil\u00e0 un petit guide de son fonctionnement et de son utilisation.<br \/>\n<!--more--><br \/>\n__Qu&rsquo;est-ce que le cache de MySQL ?__ Il s&rsquo;agit d&rsquo;un endroit m\u00e9moire qu&rsquo;utilise mysql pour stocker de c\u00f4t\u00e9 le r\u00e9sultats de certaines requ\u00eates SQL. Ainsi, si une requ\u00eate mise en cache est redemand\u00e9e au serveur, celui-ci n&rsquo;aura pas besoin d&rsquo;aller interroger les tables et pourra renvoyer le r\u00e9sultat directement depuis le cache. Les gains de vitesse peuvent aller \u00e0 238% d&rsquo;apr\u00e8s la doc de mysql ! %%% __Comment l&rsquo;activer ?__%%% Normalement, le cache est activ\u00e9 par d\u00e9faut. Voil\u00e0 comment v\u00e9rifier que c&rsquo;est bien le cas :%%%  SHOW VARIABLES LIKE &lsquo;have_query_cache&rsquo;; Si ca vous r\u00e9pond \u00ab\u00a0YES\u00a0\u00bb, alors le syst\u00e8me de cache est disponible. Mais cela ne veut pas dire qu&rsquo;il soit actif, nuance ! Pour savoir son \u00e9tat, interroger la variable &lsquo;query_cache_size&rsquo; :  SHOW VARIABLES LIKE &lsquo;query_cache_size&rsquo; Cela vous renvoit la taille du cache (incroyable, n&rsquo;est-ce-pas ?). Si cette taille est \u00e0 0, alors pas de cache. Sinon, le nombre indique le nombre d&rsquo;octets qui est r\u00e9serv\u00e9 au cache. Cette taille ne peut \u00eatre inferieure \u00e0 40kb (40*1024). Et derni\u00e8re \u00e9tape, v\u00e9rifier le type d&rsquo;activation :  SHOW VARIABLES LIKE &lsquo;query_cache_type&rsquo; * Si = 0, alors pas de cache * Si = 1, le cache est activ\u00e9, sauf pour les requ\u00eates commencant par \u00ab\u00a0SELECT SQL_NO_CACHE\u00a0\u00bb. * Si = 2, le cache est d\u00e9sactiv\u00e9 par d\u00e9faut, et activ\u00e9 pour les requ\u00eates commencant par \u00ab\u00a0SELECT SQL_CACHE\u00a0\u00bb %%% __Utilisation du cache__%%% Elle est tr\u00e8s simple : si vous executez deux fois la m\u00eame requ\u00eate, la 2e fois viendra interroger le cache automatiquement. Seul crit\u00e8re : les deux requ\u00eates doivent \u00eatre parfaitement identiques, \u00e0 la lettre pr\u00e8s (sensible \u00e0 la casse \u00e9galement). De plus, il existe des dizaines de petites exceptions \u00e0 cette r\u00e8gle. La documentation vous les explique toutes, mais en voil\u00e0 quelques une : * Vous utilisez une fonction demandant une date quelconque (SELECT CURTIME() &#8230; ne sera pas mis en cache, et c&rsquo;est normal) * Votre requ\u00eate utilise des tables temporaires. * Votre requ\u00eate n&rsquo;utilise aucune table (aucun inter\u00eat de mettre en cache) Pour tout compl\u00e9ment d&rsquo;info, reportez vous \u00e0 la doc toujours tr\u00e8s compl\u00e8te : [Mysql Documentation &#8211; Query Cache|http:\/\/dev.mysql.com\/doc\/refman\/5.1\/en\/query-cache.html|fr]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Saviez-vous que MySQL impl\u00e9mentait depuis la version 4.0 un syst\u00e8me de cache des requ\u00e8tes ? Mais savez-vous l&rsquo;utiliser ? Voil\u00e0 un petit guide de son fonctionnement et de son utilisation.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[38,36],"class_list":["post-30","post","type-post","status-publish","format-standard","hentry","category-php-sql","tag-cache","tag-mysql"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Le syst\u00e8me de cache de MySQL - My thoughts<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.olivierdoucet.info\/blog\/2006\/06\/12\/25-le-systeme-de-cache-de-mysql\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Le syst\u00e8me de cache de MySQL - My thoughts\" \/>\n<meta property=\"og:description\" content=\"Saviez-vous que MySQL impl\u00e9mentait depuis la version 4.0 un syst\u00e8me de cache des requ\u00e8tes ? Mais savez-vous l&#039;utiliser ? Voil\u00e0 un petit guide de son fonctionnement et de son utilisation.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.olivierdoucet.info\/blog\/2006\/06\/12\/25-le-systeme-de-cache-de-mysql\/\" \/>\n<meta property=\"og:site_name\" content=\"My thoughts\" \/>\n<meta property=\"article:published_time\" content=\"2006-06-12T22:09:21+00:00\" \/>\n<meta name=\"author\" content=\"Olivierd\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@odoucet\" \/>\n<meta name=\"twitter:site\" content=\"@odoucet\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Olivierd\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/2006\/06\/12\/25-le-systeme-de-cache-de-mysql\/\",\"url\":\"https:\/\/www.olivierdoucet.info\/blog\/2006\/06\/12\/25-le-systeme-de-cache-de-mysql\/\",\"name\":\"Le syst\u00e8me de cache de MySQL - My thoughts\",\"isPartOf\":{\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/#website\"},\"datePublished\":\"2006-06-12T22:09:21+00:00\",\"author\":{\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/308d5cde55f1ba886ebe73450b54c403\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/2006\/06\/12\/25-le-systeme-de-cache-de-mysql\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.olivierdoucet.info\/blog\/2006\/06\/12\/25-le-systeme-de-cache-de-mysql\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/2006\/06\/12\/25-le-systeme-de-cache-de-mysql\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.olivierdoucet.info\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Le syst\u00e8me de cache de MySQL\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/#website\",\"url\":\"https:\/\/www.olivierdoucet.info\/blog\/\",\"name\":\"My thoughts\",\"description\":\"En fran\u00e7ais and in english :)\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.olivierdoucet.info\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/308d5cde55f1ba886ebe73450b54c403\",\"name\":\"Olivierd\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g\",\"caption\":\"Olivierd\"},\"sameAs\":[\"http:\/\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Le syst\u00e8me de cache de MySQL - My thoughts","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.olivierdoucet.info\/blog\/2006\/06\/12\/25-le-systeme-de-cache-de-mysql\/","og_locale":"fr_FR","og_type":"article","og_title":"Le syst\u00e8me de cache de MySQL - My thoughts","og_description":"Saviez-vous que MySQL impl\u00e9mentait depuis la version 4.0 un syst\u00e8me de cache des requ\u00e8tes ? Mais savez-vous l'utiliser ? Voil\u00e0 un petit guide de son fonctionnement et de son utilisation.","og_url":"https:\/\/www.olivierdoucet.info\/blog\/2006\/06\/12\/25-le-systeme-de-cache-de-mysql\/","og_site_name":"My thoughts","article_published_time":"2006-06-12T22:09:21+00:00","author":"Olivierd","twitter_card":"summary_large_image","twitter_creator":"@odoucet","twitter_site":"@odoucet","twitter_misc":{"\u00c9crit par":"Olivierd","Dur\u00e9e de lecture estim\u00e9e":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.olivierdoucet.info\/blog\/2006\/06\/12\/25-le-systeme-de-cache-de-mysql\/","url":"https:\/\/www.olivierdoucet.info\/blog\/2006\/06\/12\/25-le-systeme-de-cache-de-mysql\/","name":"Le syst\u00e8me de cache de MySQL - My thoughts","isPartOf":{"@id":"https:\/\/www.olivierdoucet.info\/blog\/#website"},"datePublished":"2006-06-12T22:09:21+00:00","author":{"@id":"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/308d5cde55f1ba886ebe73450b54c403"},"breadcrumb":{"@id":"https:\/\/www.olivierdoucet.info\/blog\/2006\/06\/12\/25-le-systeme-de-cache-de-mysql\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.olivierdoucet.info\/blog\/2006\/06\/12\/25-le-systeme-de-cache-de-mysql\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.olivierdoucet.info\/blog\/2006\/06\/12\/25-le-systeme-de-cache-de-mysql\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.olivierdoucet.info\/blog\/"},{"@type":"ListItem","position":2,"name":"Le syst\u00e8me de cache de MySQL"}]},{"@type":"WebSite","@id":"https:\/\/www.olivierdoucet.info\/blog\/#website","url":"https:\/\/www.olivierdoucet.info\/blog\/","name":"My thoughts","description":"En fran\u00e7ais and in english :)","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.olivierdoucet.info\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/308d5cde55f1ba886ebe73450b54c403","name":"Olivierd","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","caption":"Olivierd"},"sameAs":["http:\/\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/posts\/30","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/comments?post=30"}],"version-history":[{"count":0,"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/posts\/30\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/media?parent=30"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/categories?post=30"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/tags?post=30"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}