MySQL Query Cache
A Practical Look at the MySQL Query Cache
http://dev.mysql.com/tech-resources/articles/mysql-query-cache.html
Êý¾Ý¿â»º´æ²ßÂÔ£º
£¨1£©»º´æ¾³£±»Ê¹ÓõÄÊý¾Ý
£¨2£©»º´æ¾³£Ö´ÐеÄSQLºÍ´æ´¢¹ý³Ì´úÂë
£¨3£©»º´æÊý¾Ý¿âÔªÊý¾ÝÐÅÏ¢£¬°üÀ¨£º¶ÔÏó½á¹¹»º´æ¡¢°²È«ÐÅÏ¢µÈ
mysqlÒýÇæËùʹÓõĻº´æ£º
£¨1£©myisam:key buffer
£¨2£©innodb:data + index buffer
£¨3£©memory:data + index buffer
²»ÊÇCache Hit RatioÔ½¸ßÔ½ºÃ£¬¼ÙÈ磺
AºÍBÊDz»Í¬µÄSQLÓï¾ä£¬Óв»Í¬µÄÖ´Ðмƻ®£¬µ«·µ»ØÏàͬµÄ½á¹û¼¯£¬²¢ÇÒAµÄÊý¾Ý¿âµÄ»º´æ½Ï´ó
SQL
Cache Hit Ratio
Logical I/O
Physical I/O
Time
A
99.99%
10000
1
0.405secs
B
90.00%
10
1
0.005secs
ÒòΪÂß¼I/O»á¶ÔÄÚ´æ½øÐÐËø²Ù×÷À´´ÓÄڴ潨Á¢½á¹û¼¯£¬Õâ»áÔì³ÉÐí¶àCPU»î¶¯¡£
Ïà¹ØµÄ²ÎÊý£º
£¨1£©query_cache_type ON|DEMAND|OFF
ONʱ£¬²»»º´æÓÐSQL_NO_CACHEµÄSELECT
DEMANDʱ£¬Ö»»º´æSQL_CACHEµÄSELECT
£¨2£©query_cache_size ²éѯ»º´æµÄ´óС£»0ʱ£¬Êǹرղéѯ»º´æ
£¨3£©query_cache_limit ָʾÿ¸ö²éѯ½á¹û¼¯×î´óµÄ»º´æÏÞÖÆ£¬³¬¹ýÕâ¸öÖµµÄ½á¹û¼¯²»»º´æ
£¨4£©query_alloc_block_size »º´æ·ÖÅäµÄ¿é´óС
£¨5£©query_cache_min_res_unit ±»·ÖÅ䏸»º´æµÄ×îСµÄ¿éµÄÊýÁ¿
£¨6£©query_cache_wlock_invalidate ±»Ð´ËøÎÞЧ»¯µÄ²éѯ»º´æµÄÊýÁ¿
£¨7£©query_prealloc_size ±»»º´æÓÃÓÚ½âÎöºÍÖ´Ðеij־ÃbufferµÄ´óС
Ïà¹ØµÄ״̬£º
£¨1£©Qcache_inserts£ºÊý¾Ý·ÅÈ뻺´æµÄ´ÎÊý
£¨2£©Qcache_hits£º»º´æÃüÖеĴÎÊý
£¨3£©Qcache_free_blocks£º»º´æÖÐ×ÔÓɵĿéÊý£»Èç¹û´ËÖµºÜ¸ß£¬ÔòָʾÁËÄÚ´æÖÐÓÐÐí¶àË鯬£¬¿ÉÒÔÓÃflush query cacheÀ´½â¾öÕâ¸öÎÊÌâ
£¨4£©Qcache_free_memory£º×ÔÓÉ»º´æµÄ´óС
£¨5£©Qcache_lowmem_prunes£ºÖ¸Ê¾ÓжàÉÙ´Îmysql±ØÐë´Ó²éѯ»º´æÖÐÒÆ³ýÌõÄ¿£¬´Ó¶øÎªÁËнøÒ»´ÎµÄ²éѯ
£¨6£©Qcache_not_cached£º²»Äܹ»»º´æµÄSQL½á¹û¼¯µÄÊýÁ¿
²éѯµÄÏÞÖÆ£º
£¨1£©ÏàͬµÄ²éѯ¿ÉÒÔ±»»º´æ·þÎñ
£¨2£©ÈκÎDMLÓï¾ä£¬Äܹ»Ê¹Ïà¹ØÓÚÕâ¸ö±íµÄ²éѯ»º´æÎÞЧ
£¨3£©¶à¸öº¯Êý£¬È磺CURRENT_DATE£¬NOW£¬RANDÓÃÓÚ²éѯÖУ¬Ôò²»±»»º´æ
£¨4£©Ê¹ÓÃÓû§¶¨ÒåµÄº¯ÊýµÄ²éѯ²»Äܱ»»º´æ
Ïà¹ØµÄÃüÁ
set global
set session
show variables like 'query%'
show status l
Ïà¹ØÎĵµ£º
Ò». ÉèÖò½Ö裺1¡¢ÓÒ¼üµã»÷ÎҵĵçÄÔ£¬Ñ¡ÔñÊôÐÔ£¨¼ûͼ-1£©
1¡¢µã»÷¸ß¼¶£¬ÔÚ¶Ô»°¿òµÄϲ¿µã»÷»·¾³±äÁ¿
3¡¢ÔÚϵͳ±äÁ¿¶Ô»°¿òÖУ¬µã»÷н¨½øÐÐÉèÖÃ.
±äÁ¿Ãû£ºJAVA_HOME
±äÁ¿Öµ£ºC:\Program Files\Java\jdk1.6.0_05£¨ÔÚ´ËʹÓõÄÊÇĬÈϰ²×°Â·¾¶£©
ϵͳ±äÁ¿->±à¼->±ä ......
Èí¼þ°æ±¾:
php-5.2.13-Win32
apache_2.2.9-win32-x86-no_ssl-r2.msi(×¢Ò⣺APACHE 2.2.X°æ±¾ÒÔÉÏÒªÔö¼Ó²å¼þ²ÅÖ§³ÖPHP 5µÄ)
mysql-5.1.44-win32.msi
ÏÈ×°µÄphp5,Ö±½Ó½âѹÎļþµ½C:\php(°²×°µ½ÄÄÀï²¢²»»áÓÐÓ°Ï죬ƾ¸öÈËϲºÅ£¬±¾ÎÄÖеÄËùÓз¾¶¶¼ÒÔÎҵݲװ·¾¶£¬Çë´ó¼ÒÔÚ×Ô¼ºµÄ»úÆ÷Éϰ²×°µÄʱºò×¢ÒâÐÞ¸ÄΪ×Ô¼ºµÄ·¾¶)
½Ó× ......
Èç¹ûÍü¼ÇmysqlµÄÃÜÂë,¿ÉÒÔÓÃÒÔϵķ½Ê½½øÐÐÐÞ¸Ä:
ÎÒÓõÄmysqlÊÇ5.1µÄserver
ÔÚwindowsÏ£º
´ò¿ªÃüÁîÐд°¿Ú£¬Í£Ö¹mysql·þÎñ£ºNet stop mysql
µ½mysqlµÄ°²×°Â·¾¶Æô¶¯mysql£¬ÔÚbinĿ¼ÏÂʹÓÃmysqld.exeÆô¶¯£¬ÔÚÃüÁîÐд°¿ÚÖ´ÐУºmysqld --skip-grant-tables
È»ºóÁíÍâ´ò¿ªÒ»¸öÃüÈëÁîÐд°¿Ú£¬Ö´ÐÐmysql£¬´ËʱÎÞÐèÊäÈëÃÜÂë ......
°²×°»·¾³£ºVMware Workstation 5.5.0 build-18463
Linux°æ±¾£ºRed Hat Enterprise Linux AS (2.6.9-42.EL)
Èí¼þ°æ±¾£ºMySQL5 - mysql-5.0.37.tar.gz
¡¡¡¡¡¡¡¡¡¡Apache2 - httpd-2.2.4.tar.gz
¡¡¡¡¡¡¡¡¡¡PHP5 - php-5.2.1.tar.gz
¡¡¡¡¡¡¡¡¡¡(½«ÒÔÉÏÎļþ±£´æÖÁ/home/tmpĿ¼)
[MySQL]
# cd /home/tmp (½øÈëѹËõ°ü ......
Ò»¡¢×ܽáһϣº
1.LinuxϵͳÏÂÆô¶¯MySQLµÄÃüÁ
mysqladmin start
/etc/init.d/mysql start (Ç°ÃæÎªmysqlµÄ°²×°Â·¾¶)
2.linuxÏÂÖØÆômysqlµÄÃüÁ
mysqladmin restart
/etc/init.d/mysql restart (Ç°ÃæÎªmysqlµÄ°²×°Â·¾¶)
3.linuxϹرÕmysqlµÄÃüÁ
mysqladmin shutdown
/etc/init.d/mysql shutd ......