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
Ïà¹ØÎĵµ£º
ÓÃMySQL´´½¨Êý¾Ý¿âºÍÊý¾Ý¿â±í
Á˽âÁËһЩ×î»ù±¾µÄ²Ù×÷ÃüÁîºó£¬ÎÒÃÇÔÙÀ´Ñ§Ï°ÈçºÎ´´½¨Ò»¸öÊý¾Ý¿âºÍÊý¾Ý¿â±í¡£
¡¡¡¡1¡¢Ê¹ÓÃSHOWÓï¾äÕÒ³öÔÚ·þÎñÆ÷Éϵ±Ç°´æÔÚʲôÊý¾Ý¿â£º
mysql> SHOW DATABASES; +----------+
| Database | +----------+ | mysql |
| test | +----------+ 3 rows in set (0.00 sec)
¡¡¡¡2¡¢´´½¨Ò ......
µÚÒ»²½£¬ÏÂÔØMysqlµÄJDBCÇý¶¯³ÌÐò£¬ÃûΪconnectorJ¡£ÏÂÔØÍøÖ·£ºhttp://dev.mysql.com/downloads/connector/j/
½âѹËõzipÎļþºó£¬½«Îļþmysql-connector-java-5.1.12-bin.jarµ½Ä¿Â¼d:\Software\MySQL\MySQL Server 5.1\jdbcdriver\ÖÐ
µÚ¶þ²½£¬ÐÞ¸ÄÎļþd:\Software\bea\WebLogic 9.23\user_projects\domains\MyDomain\bin\s ......
±¾ÎÄÈí¼þµÄÏÂÔØµØÖ·¾Í²»Áгö£¬Ö÷ÒªÊǼǼ°²×°Ê±µÄ²½Öè¼°Ïà¹ØÎÊÌâµÄ´¦Àí·½·¨£»»ùÓÚ°²×°·½·¨Ä¿Ç°ÓÐÁ½ÖÖ£¬Ò»ÖÖÊÇÀûÓÃRPM°ü°²×°£¬Ò»ÖÖÔ´Âë±àÒë°²×°£»ÒÔÏÂÖ÷
ÒªÊÇÒÔÔ´Âë±àÒë°²×°£»ÒòΪԴÂë°²×°Èí¼þµÄÏ໥ÒÀÀµÐÔС£¬°²×°·½Ê½Óø÷ÖÖunix/linuxϵͳ£¬Î¬»¤·½±ã¡£Èç¹ûÏëÈ¥³ýÏà¹Ø·þÎñʱ£¬Ö±½Órm
–rfĿ¼ ¼´¿É£»½¨Òé²ÉÓÃÔ´Âë· ......
Ò»¡¢×ܽáһϣº
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 ......
Äê³õµÄʱºòÒ»Ö±ÔÚ×öÒ»¸öÍøÕ¾MSSQL2000->MySQL5µÄÇ¨ÒÆ¹¤×÷£¬ÒòΪ²ÉÓÃÁ˲»Í¬µÄ³ÌÐòϵͳ£¬ËùÒÔÖ÷ÒªÎÊÌâÔÚÊý¾ÝµÄÇ¨ÒÆ¡£ÓÉÓÚ2¸öϵͳÊý¾Ý¿â½á¹¹²îÒì·Ç³£´ó£¬²»·½±ã²ÉÈ¡SQLSERVERÀïµ¼ÈëMYSQLµÄODBCÊý¾ÝÔ´µÄ¹¦ÄÜ£¨Ò²²»ÍƼöÕâô×ö£¬×Ö¶ÎÀàÐ͵Ȳ»Í¬µã»á¸ãËÀÈ˵ġ«£©£¬Òò´Ë¾ÍÔÚWINDOWSÏÂ×Ô¼ºÐ´PHP½Å±¾´ÓSQLSERVERÀï¶ÁÊý¾Ý£¬È»ºó°´ÕÕ ......