{"id":4132,"date":"2020-02-19T09:50:56","date_gmt":"2020-02-19T02:50:56","guid":{"rendered":"https:\/\/tino.vn\/?post_type=ht_kb&#038;p=4132"},"modified":"2020-02-19T09:50:56","modified_gmt":"2020-02-19T02:50:56","slug":"mariadb-advance-query-cache","status":"publish","type":"ht_kb","link":"https:\/\/tino.vn\/blog\/docs\/mariadb-advance-query-cache\/","title":{"rendered":"MariaDB Advance: Query Cache"},"content":{"rendered":"<div>B\u1ed9 \u0111\u1ec7m truy v\u1ea5n l\u01b0u tr\u1eef v\u0103n b\u1ea3n c\u1ee7a c\u00e2u l\u1ec7nh select c\u00f9ng v\u1edbi k\u1ebft qu\u1ea3 t\u01b0\u01a1ng \u1ee9ng \u0111\u01b0\u1ee3c g\u1eedi \u0111\u1ebfn m\u00e1y kh\u00e1ch. N\u1ebfu m\u1ed9t c\u00e2u l\u1ec7nh gi\u1ed1ng h\u1ec7t \u0111\u01b0\u1ee3c nh\u1eadn sau \u0111\u00f3, m\u00e1y ch\u1ee7 s\u1ebd l\u1ea5y k\u1ebft qu\u1ea3 t\u1eeb b\u1ed9 \u0111\u1ec7m truy v\u1ea5n thay v\u00ec ph\u00e2n t\u00edch c\u00fa ph\u00e1p v\u00e0 th\u1ef1c hi\u1ec7n l\u1ea1i c\u00e2u l\u1ec7nh. B\u1ed9 \u0111\u1ec7m truy v\u1ea5n \u0111\u01b0\u1ee3c chia s\u1ebb gi\u1eefa c\u00e1c phi\u00ean, do \u0111\u00f3, m\u1ed9t t\u1eadp k\u1ebft qu\u1ea3 \u0111\u01b0\u1ee3c t\u1ea1o b\u1edfi m\u1ed9t kh\u00e1ch h\u00e0ng c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c g\u1eedi \u0111\u1ec3 \u0111\u00e1p l\u1ea1i c\u00f9ng m\u1ed9t truy v\u1ea5n do m\u1ed9t kh\u00e1ch h\u00e0ng kh\u00e1c \u0111\u01b0a ra.<\/div>\n<div><\/div>\n<div>B\u1ed9 \u0111\u1ec7m truy v\u1ea5n c\u00f3 th\u1ec3 h\u1eefu \u00edch trong m\u00f4i tr\u01b0\u1eddng n\u01a1i b\u1ea1n c\u00f3 c\u00e1c b\u1ea3ng kh\u00f4ng thay \u0111\u1ed5i th\u01b0\u1eddng xuy\u00ean v\u00e0 m\u00e1y ch\u1ee7 nh\u1eadn \u0111\u01b0\u1ee3c nhi\u1ec1u truy v\u1ea5n gi\u1ed1ng nhau. \u0110\u00e2y l\u00e0 m\u1ed9t t\u00ecnh hu\u1ed1ng \u0111i\u1ec3n h\u00ecnh cho nhi\u1ec1u m\u00e1y ch\u1ee7 Web t\u1ea1o ra nhi\u1ec1u trang \u0111\u1ed9ng d\u1ef1a tr\u00ean n\u1ed9i dung c\u01a1 s\u1edf d\u1eef li\u1ec7u.<\/div>\n<div><\/div>\n<div>B\u1ed9 \u0111\u1ec7m truy v\u1ea5n kh\u00f4ng tr\u1ea3 v\u1ec1 d\u1eef li\u1ec7u c\u0169. Khi c\u00e1c b\u1ea3ng \u0111\u01b0\u1ee3c s\u1eeda \u0111\u1ed5i, m\u1ecdi m\u1ee5c nh\u1eadp c\u00f3 li\u00ean quan trong b\u1ed9 \u0111\u1ec7m truy v\u1ea5n s\u1ebd b\u1ecb x\u00f3a.<\/div>\n<div><\/div>\n<p class=\"ddict_sentence\">\u0110i\u1ec1u n\u00e0y c\u1ef1c k\u1ef3 h\u1eefu \u00edch trong m\u00f4i tr\u01b0\u1eddng \u0111\u1ecdc cao, vi\u1ebft th\u1ea5p (nh\u01b0 h\u1ea7u h\u1ebft c\u00e1c trang web \u0111\u1eb7c bi\u1ec7t l\u00e0 c\u00e1c trang tin t\u1ee9c). N\u00f3 kh\u00f4ng m\u1edf r\u1ed9ng t\u1ed1t trong c\u00e1c m\u00f4i tr\u01b0\u1eddng c\u00f3 I\/O\u00a0 cao tr\u00ean c\u00e1c server \u0111a l\u00f5i (multi-core\u00a0), do \u0111\u00f3, n\u00f3 b\u1ecb t\u1eaft theo m\u1eb7c \u0111\u1ecbnh.<\/p>\n<h2 id=\"Thi\u1ebft_L\u1eadp_Query_Cache\">Thi\u1ebft L\u1eadp Query Cache<\/h2>\n<div>B\u1ea1n c\u00f3 th\u1ec3 x\u00e1c minh xem Query Cache c\u00f3 \u0111\u01b0\u1ee3c b\u1eadt hay kh\u00f4ng b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng c\u00e2u l\u1ec7nh sau:<\/div>\n<div>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">MariaDB &gt; SHOW STATUS LIKE 'q%';\r\n+-------------------------+-----------+\r\n| Variable_name           | Value     |\r\n+-------------------------+-----------+\r\n| Qcache_free_blocks      | 0         |\r\n| Qcache_free_memory      | 0         |\r\n| Qcache_hits             | 0         |\r\n| Qcache_inserts          | 0         |\r\n| Qcache_lowmem_prunes    | 0         |\r\n| Qcache_not_cached       | 0         |\r\n| Qcache_queries_in_cache | 0         |\r\n| Qcache_total_blocks     | 0         |\r\n| Queries                 | 277915656 |\r\n| Questions               | 4         |\r\n+-------------------------+-----------+<\/pre>\n<p>Trong v\u00ed d\u1ee5 c\u1ee5 th\u1ec3 n\u00e0y, Query Cache b\u1ecb v\u00f4 hi\u1ec7u h\u00f3a, b\u1ea1n c\u00f3 th\u1ec3 th\u1ea5y r\u1eb1ng c\u00e1c d\u00f2ng Qcache kh\u00f4ng c\u00f3 th\u00f4ng s\u1ed1 n\u00e0o, nh\u01b0ng m\u00e1y ch\u1ee7 c\u01a1 s\u1edf d\u1eef li\u1ec7u c\u00f3 h\u1ed7 tr\u1ee3 n\u00f3 hay kh\u00f4ng?\u00a0 ta c\u00f3 th\u1ec3 ki\u1ec3m tra v\u1edbi l\u1ec7nh sau:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">MariaDB [(none)]&gt; SHOW VARIABLES LIKE 'have_query_cache';\r\n+------------------+-------+\r\n| Variable_name    | Value |\r\n+------------------+-------+\r\n| have_query_cache | YES   |\r\n+------------------+-------+\r\n<\/pre>\n<p>K\u1ebft q\u1ee7a c\u1ee7a l\u1ec7nh tr\u00ean tr\u1ea3 v\u1ec1 gi\u00e1 tr\u1ecb &#8220;YES&#8221; c\u00f3 ngh\u0129a l\u00e0 m\u00e1y ch\u1ee7 database c\u00f3 h\u1ed7 tr\u1ee3 Query Cache. Tuy nhi\u00ean Query Cache \u0111ang b\u1ecb v\u00f4 hi\u1ec7u h\u00f3a do ch\u00fang ta ch\u01b0a thi\u1ebft l\u1eadp c\u00e1c gi\u00e1 tr\u1ecb cho Query Cache ho\u1eb7t \u0111\u1ed9ng.<\/p>\n<p>B\u1eb1ng c\u00e1ch c\u1ea5u h\u00ecnh \u0111\u00fang Query Cache, b\u1ea1n c\u00f3 th\u1ec3 gi\u1ea3m s\u1ed1 l\u01b0\u1ee3ng \u0111\u0129a I\/O s\u1eed d\u1ee5ng. MariaDB l\u01b0u tr\u1eef k\u1ebft qu\u1ea3 v\u0103n b\u1ea3n c\u1ee7a c\u00e2u l\u1ec7nh SELECT\u00a0 trong b\u1ed9 nh\u1edb. Khi c\u00f9ng m\u1ed9t truy v\u1ea5n \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n l\u1ea1i, k\u1ebft qu\u1ea3 s\u1ebd d\u1ec5 d\u00e0ng \u0111\u01b0\u1ee3c t\u00ecm n\u1ea1p t\u1eeb b\u1ed9 \u0111\u1ec7m, thay v\u00ec MariaDB ph\u1ea3i c\u00e0y qua c\u00e1c b\u1ea3ng m\u1ed9t l\u1ea7n n\u1eefa.<\/p>\n<p>\u0110\u1ec3 Query Cache c\u00f3 th\u1ec3 ho\u1ea1t \u0111\u1ed9ng, ch\u00fang ta c\u1ea7n set th\u00eam 1\u00a0 bi\u1ebfn quy \u0111\u1ecbnh k\u00edch th\u01b0\u1edbc c\u1ee7a cache l\u00e0 <em>query_cache_size . \u0110<\/em>\u1ec3 thi\u1ebft l\u1eadp cache\u00a0 b\u1ea1n c\u00f3 th\u1ec3 th\u00eam c\u00e1c th\u00f4ng s\u1ed1 sau v\u00e0o file my.cnf\u00a0 c\u1ee7a MariaDB\u00a0 c\u00e1c d\u00f2ng sau v\u00e0 restart l\u1ea1i d\u1ecbch v\u1ee5 MariaDb \u0111\u1ec3 \u00e1p d\u1ee5ng c\u1ea5u h\u00ecnh:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">[mysqld]\r\n# B\u1eadt Query Cache\r\nquery_cache_type = 1\r\n# Quy \u0111\u1ecbnh k\u00edch th\u01b0\u1edbc m\u00e0 Query cache c\u00f3 th\u1ec3 ho\u1ea1t \u0111\u1ed9ng(nh\u01b0 trong V\u00ed d\u1ee5 n\u00e0y t\u00f4i quy \u0111\u1ecbnh cho ph\u00e9p d\u00f9ng 10MB \u0111\u1ec3 l\u01b0u tr\u1eef)\r\nquery-cache-size = 10M<\/pre>\n<\/div>\n<p>\u0110\u1ec3 ki\u1ec3m tra b\u1ea1n c\u00f3 th\u1ec3 truy c\u1eadp h\u1ec7 th\u1ed1ng MariaDB v\u00e0 ch\u1ea1y l\u1ec7nh sau:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">MariaDB [(none)]&gt; SHOW VARIABLES LIKE 'query_cache_size';\r\n+------------------+----------+\r\n| Variable_name    | Value    |\r\n+------------------+----------+\r\n| query_cache_size | 10485760 |\r\n+------------------+----------+<\/pre>\n<div class=\"ddict_div\">\n<p class=\"ddict_sentence\">K\u00edch th\u01b0\u1edbc l\u00fd t\u01b0\u1edfng c\u1ee7a Query Cache thu\u1ed9c r\u1ea5t nhi\u1ec1u v\u00e0o nhu c\u1ea7u c\u1ee5 th\u1ec3 c\u1ee7a t\u1eebng h\u1ec7 th\u1ed1ng. \u0110\u1eb7t gi\u00e1 tr\u1ecb qu\u00e1 nh\u1ecf s\u1ebd d\u1eabn \u0111\u1ebfn k\u1ebft qu\u1ea3 truy v\u1ea5n b\u1ecb x\u00f3a kh\u1ecfi b\u1ed9 \u0111\u1ec7m khi ch\u00fang c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng l\u1ea1i sau n\u00e0y. \u0110\u1eb7t gi\u00e1 tr\u1ecb qu\u00e1 cao c\u00f3 th\u1ec3 d\u1eabn \u0111\u1ebfn gi\u1ea3m hi\u1ec7u su\u1ea5t do tranh ch\u1ea5p kh\u00f3a, v\u00ec b\u1ed9 \u0111\u1ec7m truy v\u1ea5n b\u1ecb kh\u00f3a trong khi c\u1eadp nh\u1eadt.<\/p>\n<p>C\u00e1ch th\u1ee9 hai \u0111\u1ec3 gi\u1edbi h\u1ea1n b\u1ed9 \u0111\u1ec7m l\u00e0 c\u00f3 k\u00edch th\u01b0\u1edbc t\u1ed1i \u0111a cho m\u1ed7i b\u1ed9 k\u1ebft qu\u1ea3 truy v\u1ea5n. \u0110i\u1ec1u n\u00e0y ng\u0103n m\u1ed9t truy v\u1ea5n duy nh\u1ea5t v\u1edbi m\u1ed9t t\u1eadp k\u1ebft qu\u1ea3 l\u1edbn chi\u1ebfm h\u1ea7u h\u1ebft b\u1ed9 nh\u1edb kh\u1ea3 d\u1ee5ng v\u00e0 lo\u1ea1i b\u1ecf m\u1ed9t s\u1ed1 l\u01b0\u1ee3ng l\u1edbn c\u00e1c truy v\u1ea5n nh\u1ecf h\u01a1n kh\u1ecfi b\u1ed9 \u0111\u1ec7m. \u0110i\u1ec1u n\u00e0y \u0111\u01b0\u1ee3c x\u00e1c \u0111\u1ecbnh b\u1edfi bi\u1ebfn m\u00e1y ch\u1ee7 query_cache_limit.<\/p>\n<p>query_cache_limit\u00a0 s\u1ebd quy \u0111\u1ecbnh query\u00a0 c\u00f3 dung l\u01b0\u1ee3ng bao nhi\u00eau s\u1ebd \u0111\u01b0\u1ee3c l\u01b0u v\u00e0o Query Cache.<\/p>\n<p>V\u00ed d\u1ee5: n\u1ebfu ta set &#8220;query_cache_limit = 2M&#8221; \u0111i\u1ec1u n\u00e0y c\u00f3 ngh\u0129a l\u00e0 c\u00e1c query c\u00f3 k\u1ebft qu\u1ea3 tr\u1ea3 v\u1ec1 v\u1edbi k\u00edch th\u01b0\u1edbc\u00a0 &lt;= 2MB s\u1ebd \u0111\u01b0\u1ee3c l\u01b0u v\u00e0o cache, c\u00f2n c\u00e1c k\u1ebft qu\u1ea3 kh\u00e1c l\u1edbn h\u01a1n s\u1ebd kh\u00f4ng \u0111\u01b0\u1ee3c l\u01b0u trong Query Cache. (M\u1eb7c \u0111\u1ecbnh khi k\u00edch ho\u1ea1t Query Cache th\u00ec MariaDB s\u1ebd set th\u00f4ng s\u1ed1\u00a0 n\u00e0y l\u00e0 1M).<\/p>\n<p>To\u00e0n b\u1ed9 c\u1ea5u h\u00ecnh li\u00ean quan \u0111\u1ebfn\u00a0 Query Cache ch\u1ee7 y\u1ebfu ch\u1ec9 3 th\u00f4ng s\u1ed1 c\u01a1 b\u1ea3n nh\u01b0 sau:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">[mysqld]\r\n# B\u1eadt Query Cache \r\nquery_cache_type = 1 \r\n\r\n# Quy \u0111\u1ecbnh k\u00edch th\u01b0\u1edbc m\u00e0 Query cache c\u00f3 th\u1ec3 ho\u1ea1t \u0111\u1ed9ng(nh\u01b0 trong V\u00ed d\u1ee5 n\u00e0y t\u00f4i quy \u0111\u1ecbnh cho ph\u00e9p d\u00f9ng 10MB \u0111\u1ec3 l\u01b0u tr\u1eef) \r\nquery-cache-size = 10M\r\n\r\n# K\u00edch th\u01b0\u1edbc m\u00e0 k\u1ebft qu\u1ea3 l\u1edbn h\u01a1n m\u1ee9c n\u00e0y kh\u00f4ng \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef trong b\u1ed9 \u0111\u1ec7m truy v\u1ea5n.\r\nquery_cache_limit =2M<\/pre>\n<p>\u0110\u1ec3 ki\u1ec3m tra c\u00e1c c\u1ea5u h\u00ecnh n\u00e0y, c\u00f3 th\u1ec3 d\u00f9ng l\u1ec7nh sau tr\u00ean MariaDB<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">MariaDB [(none)]&gt; show variables like 'query_cache_%';\r\n+------------------------------+----------+\r\n| Variable_name                | Value    |\r\n+------------------------------+----------+\r\n| query_cache_limit            | 2097152  |\r\n| query_cache_min_res_unit     | 4096     |\r\n| query_cache_size             | 10485760 |\r\n| query_cache_strip_comments   | OFF      |\r\n| query_cache_type             | ON       |\r\n| query_cache_wlock_invalidate | OFF      |\r\n+------------------------------+----------+<\/pre>\n<\/div>\n<div>C\u1ea9n th\u1eadn v\u1edbi MySQL Query Cache. Khi c\u1ea5u h\u00ecnh m\u00e1y ch\u1ee7 MariaDB my.cnf c\u1ee7a b\u1ea1n, tr\u00e1nh \u0111\u1eb7t gi\u00e1 tr\u1ecb b\u1ed9 \u0111\u1ec7m truy v\u1ea5n qu\u00e1 l\u1edbn! \u0110\u1eb7t gi\u00e1 tr\u1ecb th\u1ea5p h\u01a1n nh\u01b0 100 &#8211; 200 MB. M\u1ed9t query_cache_size qu\u00e1 cao s\u1ebd l\u00e0m gi\u1ea3m \u0111\u00e1ng k\u1ec3 hi\u1ec7u n\u0103ng c\u1ee7a m\u00e1y ch\u1ee7.<\/div>\n<div class=\"ddict_div\">\n<div>D\u01b0\u1edbi \u0111\u00e2y l\u00e0 nh\u1eefng g\u00ec Oracle MySQL n\u00f3i v\u1ec1 b\u1ed9 \u0111\u1ec7m truy v\u1ea5n trong h\u01b0\u1edbng d\u1eabn tham kh\u1ea3o MySQL c\u1ee7a h\u1ecd(c\u00f3 th\u1ec3 \u00e1p d\u1ee5ng cho MariaDB)<\/div>\n<div>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">H\u00e3y th\u1eadn tr\u1ecdng v\u1ec1 vi\u1ec7c x\u00e1c \u0111\u1ecbnh c\u1ee1 b\u1ed9 \u0111\u1ec7m truy v\u1ea5n qu\u00e1 l\u1edbn, \u0111i\u1ec1u n\u00e0y l\u00e0m t\u0103ng chi ph\u00ed c\u1ea7n thi\u1ebft \u0111\u1ec3 duy tr\u00ec b\u1ed9 \u0111\u1ec7m, c\u00f3 th\u1ec3 kh\u00f4ng c\u00f3 \u00edch khi k\u00edch ho\u1ea1t n\u00f3. K\u00edch th\u01b0\u1edbc trong h\u00e0ng ch\u1ee5c MB th\u01b0\u1eddng c\u00f3 l\u1ee3i. K\u00edch th\u01b0\u1edbc trong h\u00e0ng tr\u0103m MB c\u00f3 th\u1ec3 kh\u00f4ng.\r\n<\/pre>\n<p>&nbsp;<\/p>\n<\/div>\n<div>\n<h2 id=\"Ki\u1ec3m_tra_Query_Cache\">Ki\u1ec3m tra Query Cache<\/h2>\n<div class=\"ddict_div\">\n<p class=\"ddict_sentence\">M\u1ed9t s\u1ed1 bi\u1ebfn tr\u1ea1ng th\u00e1i cung c\u1ea5p th\u00f4ng tin v\u1ec1 b\u1ed9 \u0111\u1ec7m truy v\u1ea5n.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">SHOW STATUS LIKE 'Qcache%';\r\n+-------------------------+----------+\r\n| Variable_name           | Value    |\r\n+-------------------------+----------+\r\n| Qcache_free_blocks      | 1158     |\r\n| Qcache_free_memory      | 3760784  |\r\n| Qcache_hits             | 31943398 |\r\n| Qcache_inserts          | 42998029 |\r\n| Qcache_lowmem_prunes    | 34695322 |\r\n| Qcache_not_cached       | 652482   |\r\n| Qcache_queries_in_cache | 4628     |\r\n| Qcache_total_blocks     | 11123    |\r\n+-------------------------+----------+<\/pre>\n<div class=\"ddict_div\">\n<p class=\"ddict_sentence\">Qcache_inserts ch\u1ee9a s\u1ed1 l\u01b0\u1ee3ng truy v\u1ea5n \u0111\u01b0\u1ee3c th\u00eam v\u00e0o b\u1ed9 \u0111\u1ec7m truy v\u1ea5n, Qcache_hits ch\u1ee9a s\u1ed1 l\u01b0\u1ee3ng truy v\u1ea5n \u0111\u00e3 s\u1eed d\u1ee5ng b\u1ed9 \u0111\u1ec7m truy v\u1ea5n, trong khi Qcache_lowmem_prunes ch\u1ee9a s\u1ed1 l\u01b0\u1ee3ng truy v\u1ea5n b\u1ecb x\u00f3a kh\u1ecfi b\u1ed9 \u0111\u1ec7m do thi\u1ebfu b\u1ed9 nh\u1edb.<\/p>\n<div class=\"ddict_div\">\n<p class=\"ddict_sentence\">V\u00ed d\u1ee5 tr\u00ean c\u00f3 th\u1ec3 ch\u1ec9 ra b\u1ed9 \u0111\u1ec7m ho\u1ea1t \u0111\u1ed9ng k\u00e9m. Nhi\u1ec1u truy v\u1ea5n \u0111\u00e3 \u0111\u01b0\u1ee3c th\u00eam v\u00e0o v\u00e0 nhi\u1ec1u truy v\u1ea5n \u0111\u00e3 b\u1ecb lo\u1ea1i b\u1ecf h\u01a1n so v\u1edbi th\u1ef1c t\u1ebf \u0111\u00e3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng. Tr\u01b0\u1eddng h\u1ee3p n\u00e0y vi\u1ec7c thi\u1ebft l\u1eadp Query Cache s\u1ebd kh\u00f4ng mang l\u1ea1i hi\u1ec7u qu\u1ea3, b\u1ea1n c\u1ea7n theo d\u00f5i th\u01b0\u1eddng xuy\u00ean \u0111\u1ec3 c\u00f3 c\u1ea5u h\u00ecnh ph\u00f9 h\u1ee3p ho\u1eb7c c\u00f3 th\u1ec3 t\u1eaft Query Cache\u00a0 n\u1ebfu\u00a0 m\u00f4i tr\u01b0\u1eddng ho\u1ea1t \u0111\u1ed9ng kh\u00f4ng ph\u00f9 h\u1ee3p v\u1edbi vi\u1ec7c\u00a0 s\u1eed d\u1ee5ng Query Cache.<\/p>\n<h2 id=\"Ph\u00e2n_m\u1ea3nh_Query_Cache\">Ph\u00e2n m\u1ea3nh Query Cache<\/h2>\n<div class=\"ddict_div\">\n<p class=\"ddict_sentence\">Cache truy v\u1ea5n s\u1eed d\u1ee5ng c\u00e1c kh\u1ed1i c\u00f3 \u0111\u1ed9 d\u00e0i thay \u0111\u1ed5i v\u00e0 theo th\u1eddi gian c\u00f3 th\u1ec3 b\u1ecb ph\u00e2n m\u1ea3nh. Qcache_free_blocks cao so v\u1edbi Qcache_total_blocks c\u00f3 th\u1ec3 bi\u1ec3u th\u1ecb s\u1ef1 ph\u00e2n m\u1ea3nh. FLush QUERY CACHE s\u1ebd ch\u1ed1ng ph\u00e2n m\u1ea3nh b\u1ed9 \u0111\u1ec7m truy v\u1ea5n m\u00e0 kh\u00f4ng b\u1ecf b\u1ea5t k\u1ef3 truy v\u1ea5n n\u00e0o:<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">MariaDB [(none)]&gt; FLUSH QUERY CACHE;\r\nQuery OK, 0 rows affected (0.000 sec)<\/pre>\n<p>Ki\u1ec3m tra l\u1ea1i gi\u00e1 tr\u1ecb &#8220;Qcache_free_blocks&#8221;<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">SHOW STATUS LIKE 'Qcache%';\r\n+-------------------------+----------+\r\n| Variable_name           | Value    |\r\n+-------------------------+----------+\r\n| Qcache_free_blocks      | 1        |\r\n| Qcache_free_memory      | 6101576  |\r\n| Qcache_hits             | 31981126 |\r\n| Qcache_inserts          | 43002404 |\r\n| Qcache_lowmem_prunes    | 34696486 |\r\n| Qcache_not_cached       | 655607   |\r\n| Qcache_queries_in_cache | 4197     |\r\n| Qcache_total_blocks     | 8833     |\r\n+-------------------------+----------+<\/pre>\n<p>Qcache_free_blocks s\u1ebd tr\u1edf l\u1ea1i gi\u00e1 tr\u1ecb l\u00e0 1.<\/p>\n<h2 id=\"Emptying_and_disabling_the_Query_Cache\">Emptying and disabling the Query Cache<\/h2>\n<div class=\"ddict_div\">\n<p class=\"ddict_sentence\">\u0110\u1eb7t query_cache_type ho\u1eb7c query_cache_size th\u00e0nh 0 s\u1ebd v\u00f4 hi\u1ec7u h\u00f3a b\u1ed9 \u0111\u1ec7m truy v\u1ea5n, nh\u01b0ng \u0111\u1ec3 gi\u1ea3i ph\u00f3ng h\u1ea7u h\u1ebft c\u00e1c t\u00e0i nguy\u00ean, h\u00e3y \u0111\u1eb7t c\u1ea3 hai th\u00e0nh 0 khi b\u1ea1n mu\u1ed1n t\u1eaft Query Cache.<\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>B\u1ed9 \u0111\u1ec7m truy v\u1ea5n l\u01b0u tr\u1eef v\u0103n b\u1ea3n c\u1ee7a c\u00e2u l\u1ec7nh select c\u00f9ng v\u1edbi k\u1ebft qu\u1ea3 t\u01b0\u01a1ng \u1ee9ng \u0111\u01b0\u1ee3c g\u1eedi \u0111\u1ebfn m\u00e1y kh\u00e1ch. N\u1ebfu m\u1ed9t c\u00e2u l\u1ec7nh gi\u1ed1ng h\u1ec7t \u0111\u01b0\u1ee3c nh\u1eadn sau \u0111\u00f3, m\u00e1y ch\u1ee7 s\u1ebd l\u1ea5y k\u1ebft qu\u1ea3 t\u1eeb b\u1ed9 \u0111\u1ec7m truy v\u1ea5n thay v\u00ec ph\u00e2n t\u00edch c\u00fa ph\u00e1p v\u00e0 th\u1ef1c hi\u1ec7n l\u1ea1i c\u00e2u [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":16424,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"footnotes":""},"tags":[],"ht_kb_category":[5156],"class_list":["post-4132","ht_kb","type-ht_kb","status-publish","format-standard","has-post-thumbnail","hentry","ht_kb_category-mariadb"],"_links":{"self":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/ht_kb\/4132","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/ht_kb"}],"about":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/comments?post=4132"}],"version-history":[{"count":0,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/ht_kb\/4132\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/media\/16424"}],"wp:attachment":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/media?parent=4132"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/tags?post=4132"},{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/ht_kb_category?post=4132"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}