µ±Ç°Î»Öà : 145zÓÎÏ·Õ¾¡¡|¡¡ÈÈѪ´«Ææ¡¡|¡¡¼¼Êõ½Ì³Ì¡¡|¡¡

MySQLÊý¾Ý¿âÂú×ã´«ÆæÓÎÏ·¸ß²¢·¢ÐèÇóµÄ¶àά¶È²ßÂÔ

Èȶȣº
Ҫʹ MySQL Êý¾Ý¿âÂú×ã´«ÆæÓÎÏ·µÄ¸ß²¢·¢ÐèÇ󣬿ÉÒÔ´ÓÊý¾Ý¿âÉè¼Æ¡¢ÅäÖÃÓÅ»¯¡¢»º´æ²ßÂԵȶà¸ö·½ÃæÈëÊÖ£¬ÒÔÏÂÊÇÏêϸ½éÉÜ£º
Ò»¡¢Êý¾Ý¿âÉè¼ÆÓÅ»¯
ºÏÀíµÄ±í½á¹¹Éè¼Æ
·¶Ê½Óë·´·¶Ê½µÄȨºâ
ÔÚÂú×ãÒ»¶¨Êý¾ÝÍêÕûÐÔÒªÇóµÄ»ù´¡ÉÏ£¬Êʵ±²ÉÓ÷´·¶Ê½Éè¼Æ¡£ÀýÈ磬ÔÚ´«ÆæÓÎÏ·ÖУ¬¶ÔÓÚÍæ¼Ò½ÇÉ«ÐÅÏ¢±í£¬¿ÉÄܻᾭ³£²éѯ½ÇÉ«µÄ×°±¸¡¢¼¼ÄܵÈÐÅÏ¢¡£Èç¹û°´ÕÕÑϸñµÄ·¶Ê½Éè¼Æ£¬ÕâЩÐÅÏ¢¿ÉÄÜ·ÖÉ¢ÔÚ¶à¸ö±íÖУ¬Ã¿´Î²éѯÐèÒª¶à±íÁ¬½Ó£¬ÐÔÄܽϵ͡£¿ÉÒÔ½«¾­³£Ò»Æð²éѯµÄÏà¹ØÐÅÏ¢ºÏ²¢µ½Ò»¸ö±íÖУ¬¼õÉÙ±íÁ¬½Ó²Ù×÷£¬Ìá¸ß²éѯËÙ¶È¡£
×Ö¶ÎÀàÐÍÑ¡Ôñ
¸ù¾ÝÊý¾ÝµÄʵ¼Ê·¶Î§ºÍÐÔÖÊÑ¡ÔñºÏÊʵÄ×Ö¶ÎÀàÐÍ¡£±ÈÈ磬¶ÔÓÚ±íÊ¾Íæ¼ÒµÈ¼¶µÄ×ֶΣ¬Èç¹ûµÈ¼¶·¶Î§ÔÚ 1 - 100 Ö®¼ä£¬¿ÉÒÔʹÓà TINYINT ÀàÐÍ£¬¶ø²»ÊÇ INT ÀàÐÍ£¬ÕâÑù¿ÉÒÔ½ÚÊ¡´æ´¢¿Õ¼ä²¢ÇÒÌá¸ßÊý¾ÝµÄ¶ÁдЧÂÊ¡£
Ë÷ÒýÉè¼Æ
½¨Á¢¸´ºÏË÷Òý£ºÕë¶Ô´«ÆæÓÎÏ·Öг£¼ûµÄ²éѯ³¡¾°½¨Á¢¸´ºÏË÷Òý¡£ÀýÈ磬ÔÚÍæ¼Ò½»Ò׼Ǽ²éѯÖУ¬¾­³£»á°´ÕÕÍæ¼Ò ID ºÍ½»Ò×ʱ¼ä½øÐвéѯ£¬ÄÇô¿ÉÒÔ½¨Á¢Ò»¸ö°üº¬Íæ¼Ò ID ºÍ½»Ò×ʱ¼äµÄ¸´ºÏË÷Òý¡£ÕâÑùÔÚ²éѯʱ£¬Êý¾Ý¿â¿ÉÒÔ¸ü¿ìµØ¶¨Î»µ½Âú×ãÌõ¼þµÄÊý¾Ý¡£
Ë÷Òý¸²¸Ç²éѯ£º¾¡Á¿Ê¹²éѯÄܹ»ÀûÓÃË÷Òý¸²¸Ç£¬¼õÉٻرí²Ù×÷¡£ÀýÈ磬ÔÚ²éÑ¯Íæ¼ÒµÄ»ù±¾ÐÅÏ¢£¨ÈçÐÕÃû¡¢µÈ¼¶µÈ£©Ê±£¬Èç¹û½«ÕâЩ×ֶζ¼°üº¬ÔÚË÷ÒýÖУ¬Êý¾Ý¿â¿ÉÒÔÖ±½Ó´ÓË÷ÒýÖлñÈ¡ËùÐèÊý¾Ý£¬¶ø²»ÐèÒªÔÙµ½Êý¾Ý±íÖвéѯ¡£
Êý¾Ý¿â·ÖÇø
°´Ê±¼ä·ÖÇø£º¶ÔÓÚ´«ÆæÓÎÏ·ÖеÄÈÕÖ¾Êý¾Ý£¬ÈçÍæ¼ÒµÇ¼ÈÕÖ¾¡¢ÓÎÏ·²Ù×÷ÈÕÖ¾µÈ£¬¿ÉÒÔ°´ÕÕʱ¼ä½øÐзÖÇø¡£ÀýÈ磬ÿÔ»òÿ¼¾¶È´´½¨Ò»¸ö·ÖÇø£¬ÕâÑùÔÚ²éÑ¯ÌØ¶¨Ê±¼ä¶ÎµÄÈÕ־ʱ£¬Êý¾Ý¿âÖ»ÐèҪɨÃèÏà¹Ø·ÖÇø£¬¶ø²»ÊÇÕû¸ö±í£¬´ó´óÌá¸ßÁ˲éѯЧÂÊ¡£
°´¹¦ÄÜ·ÖÇø£º¸ù¾ÝÓÎÏ·µÄ¹¦ÄÜÄ£¿é¶ÔÊý¾Ý¿â½øÐзÖÇø¡£±ÈÈ磬½«Íæ¼ÒµÄ½ÇÉ«Êý¾Ý¡¢Éç½»¹ØÏµÊý¾Ý¡¢ÓÎÏ·ÎïÆ·Êý¾ÝµÈ·Ö±ð´æ´¢ÔÚ²»Í¬µÄ·ÖÇøÖС£Ôڸ߲¢·¢³¡¾°Ï£¬²»Í¬¹¦ÄÜÄ£¿éµÄ²Ù×÷¿ÉÒÔ²¢ÐеØÔÚ¸÷×ԵķÖÇøÉϽøÐУ¬¼õÉÙÊý¾Ý¾ºÕùºÍËøµÈ´ý¡£
¶þ¡¢MySQL ÅäÖÃÓÅ»¯
µ÷Õû²ÎÊý
innodb_buffer_pool_size£ºÕâÊÇ InnoDB ´æ´¢ÒýÇæÓÃÓÚ»º´æÊý¾ÝºÍË÷ÒýµÄÄÚ´æÇøÓò¡£Ôö´óÕâ¸ö²ÎÊýµÄÖµ¿ÉÒÔ¼õÉÙ´ÅÅÌ I/O ²Ù×÷¡£¶ÔÓÚ´«ÆæÓÎÏ·£¬¸ù¾Ý·þÎñÆ÷µÄÄÚ´æ´óС£¬¿ÉÒÔ½«ÆäÉèÖÃΪ·þÎñÆ÷ÄÚ´æµÄ [X]%£¨ÀýÈç 50 - 70%£©£¬ÒÔÌá¸ßÊý¾ÝµÄ¶ÁдËÙ¶È¡£
max_connections£ºÔö¼ÓÕâ¸ö²ÎÊýµÄÖµ¿ÉÒÔÔÊÐí¸ü¶àµÄ²¢·¢Á¬½Ó¡£µ«Òª×¢Ò⣬¹ý¸ßµÄ²¢·¢Á¬½ÓÊý¿ÉÄܻᵼÖ·þÎñÆ÷×ÊÔ´ºÄ¾¡¡£ÔÚ´«ÆæÓÎÏ·ÖУ¬¿ÉÒÔ¸ù¾ÝÔ¤ÆÚµÄͬʱÔÚÏßÍæ¼ÒÊýÁ¿ºÍ·þÎñÆ÷µÄ´¦ÀíÄÜÁ¦£¬ºÏÀíµ÷ÕûÕâ¸öÖµ£¬ÈçÉèÖÃΪ 1000 - 5000£¨¾ßÌåÊýÖµÐèÒª¸ù¾Ýʵ¼Ê²âÊÔÈ·¶¨£©¡£
query_cache_size£ºÆôÓòéѯ»º´æ¿ÉÒÔÌá¸ßÖØ¸´²éѯµÄËÙ¶È¡£¶ÔÓÚ´«ÆæÓÎÏ·ÖÐһЩ¾­³£Ö´ÐеIJéѯ£¬Èç²éѯÓÎÏ·ÅäÖÃÐÅÏ¢µÈ£¬¿ÉÒÔͨ¹ýÉèÖúÏÊʵIJéѯ»º´æ´óС£¨Èç 128MB - 1GB£©À´Ìá¸ß²éѯЧÂÊ¡£µ«Òª×¢Òâ²éѯ»º´æµÄÃüÖÐÂÊ£¬Èç¹ûÃüÖÐÂʽϵͣ¬¿ÉÒÔ¿¼ÂǽûÓòéѯ»º´æ¡£
´æ´¢ÒýÇæÑ¡Ôñ
InnoDB ÊÇÒ»¸ö²»´íµÄÑ¡Ôñ£¬ÒòΪËüÖ§³ÖÊÂÎñ¡¢Ðм¶ËøºÍÍâ¼üÔ¼ÊøµÈ¹¦ÄÜ¡£Ðм¶ËøÔڸ߲¢·¢³¡¾°Ï¿ÉÒÔ¼õÉÙËø³åÍ»£¬ÀýÈçÔÚ¶à¸öÍæ¼Òͬʱ²Ù×÷×Ô¼ºµÄ½ÇÉ«Êý¾Ý£¨ÈçÉý¼¶¡¢»ñȡװ±¸µÈ£©Ê±£¬Ðм¶Ëø¿ÉÒÔÈ·±£Ã¿¸öÍæ¼ÒµÄ²Ù×÷»¥²»¸ÉÈÅ£¬Ìá¸ß²¢·¢´¦ÀíÄÜÁ¦¡£
Èý¡¢»º´æ²ßÂÔ
Ó¦Óò㻺´æ
Memcached »ò Redis »º´æ£ºÔÚ´«ÆæÓÎÏ·µÄÓ¦Óò㣬¿ÉÒÔʹÓà Memcached »ò Redis ×÷Ϊ»º´æ·þÎñÆ÷¡£ÀýÈ磬½«Íæ¼ÒµÄ³£ÓÃÐÅÏ¢£¨Èç½ÇÉ«»ù±¾ÐÅÏ¢¡¢±³°üÎïÆ·ÁбíµÈ£©»º´æµ½ Memcached »ò Redis ÖС£µ±Íæ¼ÒÇëÇó²éѯÕâЩÐÅϢʱ£¬Ê×ÏÈ´Ó»º´æÖлñÈ¡£¬Èç¹û»º´æÖв»´æÔÚ£¬ÔÙ´Ó MySQL Êý¾Ý¿âÖвéѯ£¬²¢½«²éѯ½á¹û»º´æÆðÀ´£¬Ï´βéѯÏàͬÐÅϢʱ¾Í¿ÉÒÔÖ±½Ó´Ó»º´æÖлñÈ¡£¬´ó´ó¼õÇáÁË MySQL Êý¾Ý¿âµÄѹÁ¦¡£
»º´æ¸üвßÂÔ£ºÖƶ¨ºÏÀíµÄ»º´æ¸üвßÂÔ£¬È·±£»º´æÊý¾ÝµÄÒ»ÖÂÐÔ¡£ÀýÈ磬¿ÉÒÔ²ÉÓö¨Ê±¸üС¢Êý¾Ý±ä¸üʱÖ÷¶¯¸üлº´æµÈ²ßÂÔ¡£ÔÚ´«ÆæÓÎÏ·ÖУ¬µ±Íæ¼ÒÉý¼¶ºó£¬ÔÚ¸üРMySQL Êý¾Ý¿âÖÐÍæ¼ÒµÈ¼¶Êý¾ÝµÄͬʱ£¬Ò²¸üлº´æÖеÄÍæ¼ÒµÈ¼¶ÐÅÏ¢¡£
Êý¾Ý¿âÄÚ²¿»º´æÓÅ»¯
ÀûÓà MySQL ×ÔÉíµÄ»º´æ»úÖÆ£¬Èç InnoDB µÄ»º³å³Ø¡£Í¨¹ýºÏÀíÉèÖûº³å³ØµÄ´óСºÍÔ¤¶Á²ßÂԵȣ¬¿ÉÒÔÌá¸ßÊý¾ÝµÄ»º´æÃüÖÐÂÊ£¬¼õÉÙ´ÅÅÌ I/O ²Ù×÷¡£ÀýÈ磬¸ù¾ÝÓÎÏ·Êý¾ÝµÄ·ÃÎÊģʽ£¬µ÷Õû InnoDB µÄÔ¤¶Á²ÎÊý£¬Èç innodb_read_ahead_threshold£¬ÒÔÓÅ»¯Êý¾ÝµÄÔ¤¶Á²Ù×÷¡£
ËÄ¡¢¸ºÔؾùºâÓ뼯Ⱥ
Ö÷´Ó¸´ÖÆÓë¶Áд·ÖÀë
½¨Á¢ MySQL Ö÷´Ó¸´ÖƼܹ¹£¬½«Ð´²Ù×÷£¨ÈçÍæ¼Ò´´½¨½ÇÉ«¡¢±£´æÓÎÏ·½ø¶ÈµÈ£©¼¯ÖÐÔÚÖ÷Êý¾Ý¿âÉÏ£¬¶ø¶Á²Ù×÷£¨Èç²éÑ¯Íæ¼ÒÐÅÏ¢¡¢ÓÎÏ·ÅÅÐаñµÈ£©¿ÉÒÔ·Ö·¢µ½´ÓÊý¾Ý¿âÉÏ¡£ÕâÑù¿ÉÒÔ·Öµ£Ö÷Êý¾Ý¿âµÄ¸ºÔØ£¬Ìá¸ßÕûÌåµÄ²¢·¢´¦ÀíÄÜÁ¦¡£ÀýÈ磬ÔÚ´«ÆæÓÎÏ·ÖУ¬´óÁ¿Íæ¼Ò²éѯÅÅÐаñÐÅϢʱ£¬¿ÉÒÔ½«ÕâЩ¶Á²Ù×÷·ÖÅäµ½´ÓÊý¾Ý¿âÉϽøÐУ¬¼õÇáÖ÷Êý¾Ý¿âµÄѹÁ¦¡£
ͨ¹ýÖмä¼þ£¨Èç MySQL - Proxy »ò MaxScale£©ÊµÏÖ¶Áд·ÖÀëµÄÖÇÄܵ÷¶È£¬¸ù¾Ý SQL Óï¾äµÄÀàÐÍ£¨¶Á»òд£©×Ô¶¯½«ÇëÇó·Óɵ½Ö÷Êý¾Ý¿â»ò´ÓÊý¾Ý¿â¡£
Êý¾Ý¿â¼¯Èº
²ÉÓà MySQL ¼¯Èº¼¼Êõ£¬Èç MySQL Cluster »ò»ùÓÚ Galera µÄ¼¯Èº½â¾ö·½°¸¡£ÔÚ¼¯Èº»·¾³ÖУ¬¶à¸ö½Úµã¹²Í¬Ìṩ·þÎñ£¬Êý¾ÝÔÚ½ÚµãÖ®¼ä½øÐÐͬ²½ºÍÈßÓà´æ´¢¡£ÔÚ´«ÆæÓÎÏ·ÖУ¬µ±Ä³¸ö½Úµã³öÏÖ¹ÊÕÏʱ£¬ÆäËû½Úµã¿ÉÒÔ¼ÌÐøÌṩ·þÎñ£¬±£Ö¤ÓÎÏ·µÄ¸ß¿ÉÓÃÐԺ͸߲¢·¢´¦ÀíÄÜÁ¦¡£
Îå¡¢¼à¿ØÓëÓÅ»¯µ÷Õû
ÐÔÄÜ¼à¿Ø
ʹÓà MySQL ×Ô´øµÄÐÔÄÜ¼à¿Ø¹¤¾ß£¨Èç SHOW STATUS¡¢SHOW ENGINE INNODB STATUS µÈ£©ÒÔ¼°µÚÈý·½¼à¿Ø¹¤¾ß£¨Èç Percona Toolkit¡¢Zabbix µÈ£©¶Ô MySQL Êý¾Ý¿âµÄÐÔÄܽøÐÐʵʱ¼à¿Ø¡£Öصã¼à¿ØÖ¸±ê°üÀ¨²éѯִÐÐʱ¼ä¡¢ËøµÈ´ýʱ¼ä¡¢´ÅÅÌ I/O¡¢ÄÚ´æÊ¹Óõȡ£ÔÚ´«ÆæÓÎÏ·ÔËÓª¹ý³ÌÖУ¬Í¨¹ýÕâЩ¼à¿ØÖ¸±ê¼°Ê±·¢ÏÖÐÔÄÜÆ¿¾±¡£
ÓÅ»¯µ÷Õû
¸ù¾Ý¼à¿Ø½á¹û£¬¶¨ÆÚ¶ÔÊý¾Ý¿â½øÐÐÓÅ»¯µ÷Õû¡£ÀýÈ磬Èç¹û·¢ÏÖij¸ö²éѯִÐÐʱ¼ä¹ý³¤£¬¿ÉÒÔ¶Ô²éѯÓï¾ä½øÐÐÓÅ»¯£¬µ÷ÕûË÷Òý»ò±í½á¹¹£»Èç¹û·¢ÏÖÄÚ´æÊ¹Óùý¸ß£¬¿ÉÒÔÊʵ±µ÷ÕûÊý¾Ý¿âµÄÄÚ´æÏà¹Ø²ÎÊý¡£
ͨ¹ýÒÔÉÏ×ۺϵķ½·¨£¬¿ÉÒÔʹ MySQL Êý¾Ý¿â½ÏºÃµØÂú×ã´«ÆæÓÎÏ·µÄ¸ß²¢·¢ÐèÇó£¬ÎªÓÎÏ·µÄÎȶ¨ÔËÐÐÌṩ¿É¿¿µÄÊý¾ÝÖ§³Ö¡£

´«ÆæÓÎϷʹÓõÄÊý¾Ý¿âÖ÷ÒªÓÐ MySQL¡¢SQL Server ºÍ Oracle£¬ÆäÖÐ×î³£ÓõÄÊÇ MySQL¡£MySQL ×÷Ϊ¿ªÔ´Êý¾Ý¿â£¬¾ßÓиßÐÔÄÜ¡¢Ò×ÓÃÐÔ¡¢¿çƽ̨ºÍµÍ³É±¾µÄÓÅÊÆ£¬Ê¹Æä³ÉΪÐí¶àÓÎÏ·¿ª·¢ÍŶӵÄÊ×Ñ¡¡£Ôڸ߲¢·¢³¡¾°Ï£¬MySQL ¿ÉÒÔͨ¹ý¶àÖÖ·½Ê½À´Âú×ã´«ÆæÓÎÏ·µÄÐèÇó¡£
Ê×ÏÈ£¬¿ÉÒÔ½øÐзֱí·Ö¿â²Ù×÷¡£ÀýÈç¸ù¾Ýʱ¼äά¶È½øÐбíµÄˮƽ²ð·Ö£¬½«²»Í¬Ê±¼ä¶ÎµÄÊý¾Ý´æ´¢ÔÚ²»Í¬µÄ±íÖУ¬ÒÔÌá¸ß²éѯËÙ¶È¡£»¹¿ÉÒÔ·ÖÀë»îÔ¾Êý¾Ý£¬½«»ð±¬»ò¾­³£±»ËÑË÷µÄÉÌÆ·Êý¾Ý´æÔÚÒ»ÕÅ»îÔ¾±íÖУ¬²éѯʱÏȲéѯ»îÔ¾±í£¬Ã»ÓеϰÔÙ²éѯ×ÜÉÌÆ·±í¡£
Æä´Î£¬Ê¹Óûº´æ¡£Ôڸ߲¢·¢µÄÒµÎñ³¡¾°Ï£¬Êý¾Ý¿âͨ³£ÊÇÓû§²¢·¢·ÃÎÊ×ÈõµÄ»·½Ú¡£¿ÉÒÔʹÓà redis ×ö»º³å²Ù×÷£¬ÈÃÇëÇóÏÈ·ÃÎʵ½ redis£¬¶ø²»ÊÇÖ±½Ó·ÃÎÊ MySQL Êý¾Ý¿â¡£ÕâÑù¿ÉÒÔ¼õÉÙ¶ÔÊý¾Ý¿âµÄ·ÃÎÊ£¬Ìá¸ß·ÃÎÊËÙ¶È¡£
ÔÙÕߣ¬ÓÅ»¯ SQL Óï¾ä¡£¼õÉÙ²éѯµÄÓ°Ïì½á¹û¼¯£¬±ÜÃâ³öÏÖÈ«±íɨÃ衣ͨ¹ý Explains »ò Desc ·ÖÎö SQL£¬ºÏÀíʹÓÃË÷ÒýºÍ¸´ºÏË÷Òý£¬½¨Ë÷ÒýÊÇ SQL ÓÅ»¯ÖÐ×îÓÐЧµÄÊֶΡ£
ÁíÍ⣬»¹¿ÉÒÔ²ÉÓà MySQL Ö÷´Ó¸´ÖÆÊµÏÖ¶Áд·ÖÀ룬ÊÂÎñµÄÁ½½×¶ÎÌá½»¿ÉÒÔ½â¾ö¹ÊÕϻָ´¡¢Ö÷´Ó¡¢Ö÷±¸¸´ÖÆÊ±µÄÊý¾ÝÒ»ÖÂÐÔÎÊÌâ¡£MySQL µ¥½Úµã´æÔÚÐÔÄÜÆ¿¾±£¬¿ÉÒÔͨ¹ýÔö¼Ó½ÚµãµÄ·½Ê½À´ÌáÉý²¢·¢Á¿£¬Èç²ÉÓÃÖ÷´Ó¸´Öƽø¶øÊµÏÖ¶Áд·ÖÀ룬»º½âµ¥½ÚµãµÄ IO ѹÁ¦¡£
»¹¿ÉÒÔ¿¼ÂÇʹÓÃÏ̳߳ػúÖÆ¡£Oracle ¹Ù·½ÒÔ¼° Percona ºÍ MariaDB ¶¼ÒýÈëÁËÏ̳߳ػúÖÆ£¬½«ÇëÇóÅŶӣ¬Ê¹ÓÃÓÐÏÞµÄÏß³Ì×ÊÔ´À´´¦Àí£¬¼õÉÙ CPU Ƶ·±½øÐÐÉÏÏÂÎÄÇл»£¬´Ó¶øÌá¸ßÕûÌåÐÔÄÜ¡£
×ÜÖ®£¬Í¨¹ýÒÔÉ϶àÖÖ·½Ê½µÄ×ÛºÏÔËÓ㬿ÉÒÔÓÐЧÌá¸ß MySQL Êý¾Ý¿âÔÚ´«ÆæÓÎÏ·¸ß²¢·¢³¡¾°ÏµÄÐÔÄܱíÏÖ¡£
MySQL ·Ö±í·Ö¿âÈçºÎÂú×ã´«ÆæÓÎÏ·¸ß²¢·¢
´«ÆæÓÎÏ·×÷Ϊһ¿îÈÈÃÅÓÎÏ·£¬ÆäÊý¾ÝÁ¿ºÍ²¢·¢ÇëÇóÁ¿ÍùÍù·Ç³£ÅÓ´ó¡£MySQL ·Ö±í·Ö¿âÊÇÓ¦¶ÔÕâÖָ߲¢·¢³¡¾°µÄÓÐЧ²ßÂÔÖ®Ò»¡£·Ö¿âʵ¼ÊÉϾÍÊǰѱí·Åµ½²»Í¬Êý¾Ý¿âÉÏ£¬¶ø·Ö±íÓÖ·ÖΪ´¹Ö±ºÍˮƽÁ½ÖÖ·½Ê½¡£´¹Ö±·Ö±íÊǽ«Êý¾Ý¿â±í°´ÕÕ¹¦ÄÜ»òÊý¾ÝÀàÐͲð·Ö³É¶à¸ö±í£¬Ã¿ÕÅ±í´æ´¢Ìض¨ÀàÐ͵ÄÊý¾Ý£¬ÕâÑù¿ÉÒÔʹÊý¾ÝµÄ¹ÜÀí¸ü¼ÓÇåÎú£¬Ò²ÄÜÌá¸ß²éѯЧÂÊ¡£ÀýÈçÔÚ´«ÆæÓÎÏ·ÖУ¬¿ÉÒÔ½«Íæ¼ÒÐÅÏ¢±í°´ÕÕ»ù±¾ÐÅÏ¢ºÍÓÎÏ·³É¾ÍµÈ²»Í¬ÀàÐͽøÐд¹Ö±²ð·Ö¡£Ë®Æ½·Ö±íÔòÊǽ«Êý¾Ý°´ÕÕijÖÖ¹æÔò·Ö¸îµ½¶à¸öÊý¾Ý¿âʵÀýÉÏ£¬Í¨³£ÓÃÓÚÊý¾ÝÁ¿´ó¡¢²¢Ðд¦ÀíÐèÇó¸ßµÄ³¡¾°¡£±ÈÈç¿ÉÒÔ¸ù¾Ýʱ¼äά¶È¶Ô´«ÆæÓÎÏ·µÄ½»Ò׼Ǽ½øÐÐˮƽ²ð·Ö£¬½ñÄêµÄÊý¾Ý±£´æÔÚÒ»¸ö±íÖУ¬È¥ÄêµÄÊý¾Ý´æ·ÅÔÚÁíÒ»¸ö±íÖУ¬ÕâÑù¿ÉÒÔ¼õÉÙµ¥¸ö±íµÄÊý¾ÝÁ¿£¬Ìá¸ß²éѯËÙ¶È¡£µ«ÐèҪעÒâµÄÊÇ£¬Ñ¡ÔñºÏÊ浀ᅮ¬·½Ê½·Ç³£ÖØÒª¡£Èç¹û²ÉÓð´Õչؼü×Ö % µÄ·½Ê½½øÐÐ·ÖÆ¬£¬¿ÉÄÜ»á³öÏִ󲿷ÖÊý¾Ý±»·Öµ½Í¬Ò»¸ö±íÀïµÄÇé¿ö£¬´Ó¶øÎÞ·¨Æðµ½·Ö±íµÄ×÷Óá£ËùÒÔÒª¸ù¾Ý´«ÆæÓÎÏ·µÄÌØµãÑ¡ÔñºÏÊʵĹؼü×Ö£¬±ÈÈç°´ÕÕÍæ¼Ò ID ½øÐÐ·ÖÆ¬¡£È»¶ø£¬µ±²éÑ¯ÌØ¶¨Íæ¼ÒµÄ¶©µ¥Ê±£¬¿ÉÄܲ¢²»ÖªµÀ¶©µ¥¾ßÌåÐÅÏ¢±»·Åµ½Äĸö·ÖƬÁË¡£Õâʱ¿ÉÒÔ¿¼ÂDzÉÓøü¾ùÔȵĹþÏ£·ÖƬËã·¨£¬È¡ % ¾ÍÊÇÒ»ÖÖ¼òµ¥µÄ¹þÏ£Ëã·¨£¬µ«Ç°ÌáÊÇÓû§ ID ºó¼¸Î»Êý×Ö±ØÐëÊǾùÔÈ·Ö²¼µÄ¡£»¹ÓÐÒ»ÖÖ²é±í·¨£¬¼´ÈËΪ¾ö¶¨Ä³¸ö Sharding Key ÂäÔÚÄĸö·ÖƬÉÏ£¬²¢½«·ÖÅä½á¹û¼Ç¼ÔÚÒ»ÕűíÀïÃæ¡£Ã¿´ÎÖ´ÐвéѯµÄʱºò£¬ÏÈÈ¥±íÀï²éÒ»ÏÂÒªÕÒµÄÊý¾ÝÔÚÄĸö·ÖƬÖС£²é±í·¨µÄºÃ´¦ÊÇÁé»î£¬¿ÉÒÔÔÚ¸÷ÖÖ¸´ÔÓÇé¿öϽ«Êý¾Ý·Ö¾ùÔÈ£¬¶øÇÒ·ÖÆ¬¿ÉÒÔËæÊ±¸Ä±ä¡£±ÈÈç·¢ÏÖij¸ö·ÖƬ³ÉΪÈȵãʱ£¬¿ÉÒÔ½øÐе÷Õû¡£
ʹÓûº´æÈçºÎÌáÉý´«ÆæÓÎÏ·¸ß²¢·¢ÐÔÄÜ
»º´æ¼¼ÊõÔÚÌáÉý´«ÆæÓÎÏ·¸ß²¢·¢ÐÔÄÜ·½ÃæÆð×ÅÖÁ¹ØÖØÒªµÄ×÷Ó᣻º´æÊµÖÊÊÇÒ»¸ö´æ´¢ÓÐÏÞÈȵãÊý¾ÝµÄ½éÖÊ£¬¿ÉÒÔ´ó´ó¼õÉÙ¶ÔÊý¾Ý¿âµÄ·ÃÎÊ´ÎÊý£¬´Ó¶øÌá¸ßϵͳÏìÓ¦ËÙ¶È¡£¶ÔÓÚ´«ÆæÓÎÏ·À´Ëµ£¬¿ÉÒÔʹÓýø³ÌÄÚ»º´æ£¬ÀýÈçÏȳõʼ»¯ local cache£¬ÉèÖùýÆÚʱ¼äºÍ»º´æÉÏÏ޵ȲÎÊý¡£»ù´¡²Ù×÷°üÀ¨Ôö¼Ó / Ð޸Ļº´æ£¨cache.Set£©¡¢»ñÈ¡»º´æÖµ£¨cache.Get£©ºÍɾ³ý»º´æ£¨cache.Del£©¡£¸ß¼¶²Ù×÷Èç cache.Take£¬ÔÚ key ¶ÔÓ¦µÄ value ²»´æÔÚʱ£¬Ö´Ðд«ÈëµÄ fetch ·½·¨£¬½«¾ßÌå¶ÁÈ¡Âß¼­½»¸ø¿ª·¢ÕßʵÏÖ£¬²¢×Ô¶¯½«½á¹û·Åµ½»º´æÀï¡£ÔÚ´«ÆæÓÎÏ·ÖУ¬¿ÉÒÔ½«Ò»Ð©Æµ·±·ÃÎʵÄÊý¾Ý£¬ÈçÍæ¼ÒµÄ»ù±¾ÐÅÏ¢¡¢ÈÈÃÅ×°±¸µÄÊôÐԵȴ洢ÔÚ»º´æÖС£ÕâÑù£¬µ±Íæ¼Ò²éѯÕâЩÐÅϢʱ£¬¿ÉÒÔÖ±½Ó´Ó»º´æÖлñÈ¡£¬¶øÎÞÐèÿ´Î¶¼È¥·ÃÎÊÊý¾Ý¿â£¬´ó´óÌá¸ßÁËÏìÓ¦ËÙ¶È¡£Í¬Ê±£¬»º´æ¼¼Êõ»¹¿ÉÒÔÔÚ·Ö²¼Ê½»·¾³ÏÂÌṩ¸ß²¢·¢µÄ·ÃÎÊÄÜÁ¦£¬µ«ÐèÒª¿¼ÂÇ»º´æµÄÒ»ÖÂÐÔºÍÊý¾Ý¸üеÄÎÊÌâ¡£±ÈÈçµ±Íæ¼ÒµÄÐÅÏ¢·¢Éú±ä»¯Ê±£¬ÐèÒª¼°Ê±¸üлº´æÖеÄÊý¾Ý£¬ÒÔ±£Ö¤Êý¾ÝµÄ׼ȷÐÔ¡£
ÓÅ»¯ SQL Óï¾äÂú×ã´«ÆæÓÎÏ·¸ß²¢·¢
ÓÅ»¯ SQL Óï¾äÊÇÂú×ã´«ÆæÓÎÏ·¸ß²¢·¢ÐèÇóµÄÖØÒªÊÖ¶ÎÖ®Ò»¡£ÔÚ´«ÆæÓÎÏ·µÄÊý¾Ý¿â²Ù×÷ÖУ¬Ó¦±ÜÃâһЩ»áµ¼ÖÂÈ«±íɨÃèµÄÇé¿ö¡£ÀýÈ磬Where Óï¾äÖв»Òª³öÏÖ Null¡¢or¡¢!=¡¢<>¡¢in¡¢not in µÈÌõ¼þ£¬·ñÔò»á±Ü¿ªË÷Òý½øÐÐÈ«±íɨÃè¡£¾¡Á¿±ÜÃâÔÚË÷Òý¹ýµÄ×Ö·ûÊý¾ÝÖУ¬Ê¹Ó÷ǴòÍ·×ÖĸËÑË÷£¬Èç SELECT * FROM T1 WHERE NAME LIKE '% L%' ºÍ SELECT * FROM T1 WHERE SUBSTING (NAME,2,1)='L' ¶¼»á±Ü¿ªË÷Òý½øÐÐÈ«±íɨ¡£±ØÒªÊ±¿ÉÒÔÇ¿ÖÆ²éѯÓÅ»¯Æ÷ʹÓÃij¸öË÷Òý£¬ÈçÔÚ where ×Ó¾äÖÐʹÓòÎÊýʱ£¬¿ÉÄܻᵼÖÂÈ«±íɨÃ裬¿ÉÒÔ¸ÄÎªÇ¿ÖÆ²éѯʹÓÃË÷Òý¡£Ó¦¾¡Á¿±ÜÃâÔÚ where ×Ó¾äÖжÔ×ֶνøÐбí´ïʽ²Ù×÷£¬Õ⽫µ¼ÖÂÒýÇæ·ÅÆúʹÓÃË÷Òý¶ø½øÐÐÈ«±íɨÃè¡£±ÈÈç SELECT * FROM T1 WHERE F1/2=100 Ó¦¸ÄΪ SELECT * FROM T1 WHERE F1=100*2£»SELECT * FROM RECORD WHERE SUBSTRING (CARD_NO,1,4)='5378' Ó¦¸ÄΪ SELECT * FROM RECORD WHERE CARD_NO LIKE '5378%'£»SELECT member_number, first_name, last_name FROM members WHERE DATEDIFF (yy,datofbirth,GETDATE ()) > 21 Ó¦¸ÄΪ SELECT member_number, first_name, last_name FROM members WHERE dateofbirth < DATEADD (yy,-21,GETDATE ())¡£Í¨¹ýÓÅ»¯ SQL Óï¾ä£¬¿ÉÒÔ¼õÉÙÊý¾Ý¿âµÄ²éѯʱ¼ä£¬Ìá¸ß´«ÆæÓÎÏ·Ôڸ߲¢·¢Çé¿öϵÄÏìÓ¦ËÙ¶È¡£
MySQL Ö÷´Ó¸´ÖÆÈçºÎÓ¦¶Ô´«ÆæÓÎÏ·¸ß²¢·¢
ÔÚ´«ÆæÓÎÏ·ÖУ¬MySQL Ö÷´Ó¸´ÖÆÊÇÒ»ÖÖÓ¦¶Ô¸ß²¢·¢µÄÓÐЧ·½Ê½¡£¶ÔÓڸ߲¢·¢Çé¿ö£¬´«ÆæÓÎÏ·Ò»°ã»á¼ÓÈë¸ºÔØ¾ùºâ£¨Nginx£©£¬½«ÇëÇó·Ö·¢µ½·Ö²¼Ê½·þÎñÉÏ£¬´Ó¶ø¼õÇá¸÷¸ö·þÎñÆ÷µÄѹÁ¦¡£µ«´ÓÊý¾Ý¿âµÄ½Ç¶ÈÒ²¿ÉÒÔ½øÐнâ¾ö£¬ÆäÖÐÊý¾Ý¿âʵÏÖ·Ö¿â·Ö±í£¨Ò²¾ÍÊdz£ËµµÄÖ÷´Óͬ²½¡¢¶Áд·ÖÀ룩¡£¶Áд·ÖÀëÊÇÖ¸Ö÷£¨master£©ÊµÏÖдÇëÇ󣬴ӣ¨slave£©ÊµÏÖ¶ÁÇëÇ󣬴Ӷø¼õÇáÊý¾Ý¿âµÄѹÁ¦¡£Ö÷´Óͬ²½ÊǶÔÓÚ MySQL À´Ëµ£¬master »á½«Ö´ÐмǼ±£´æµ½×Ô¼ºµÄÈÕ־ϵͳÖУ¬È»ºó´«¸ø slave£¬slave »á½« master µÄÈÕÖ¾±£´æµ½×Ô¼ºµÄÈÕ־ϵͳÖУ¬Ö®ºó°´ÕÕÈÕÖ¾ÄÚÈݽøÐÐͬ²½¡£²»¹ý MySQL µÄÖ÷´Óͬ²½ÓÐÑÓ³ÙÐÔ¡£Ö÷´Óͬ²½¸´ÖÆÓÐÒÔϼ¸ÖÖ·½Ê½£ºÍ¬²½¸´ÖÆ£¬master µÄ±ä»¯£¬±ØÐëµÈ´ý slave-1¡¢slave-2 µÈÍê³Éºó²ÅÄÜ·µ»Ø£»Òì²½¸´ÖÆ£¬master Ö»ÐèÒªÍê³É×Ô¼ºµÄÊý¾Ý¿â²Ù×÷¼´¿É£¬ÖÁÓÚ slaves ÊÇ·ñÊÕµ½¶þ½øÖÆÈÕÖ¾£¬ÊÇ·ñÍê³É²Ù×÷£¬²»ÓùØÐÄ£¬ÕâÊÇ MySQL µÄĬÈÏÉèÖã»°ëͬ²½¸´ÖÆ£¬master Ö»±£Ö¤ slaves ÖеÄÒ»¸ö²Ù×÷³É¹¦£¬¾Í·µ»Ø£¬ÆäËû slave ²»¹Ü¡£Õâ¸ö¹¦ÄÜÊÇÓÉ Google Ϊ MySQL ÒýÈëµÄ¡£ÔÚÅäÖà master ʱ£¬ÐèÒªÐÞ¸Ä my.conf Îļþ£¬ÔÚ£¨mysqld£©ÖÐÌí¼ÓһЩ²ÎÊý£¬Èç server-id¡¢log_bin¡¢binlog_do_db µÈ¡£
Ï̳߳ػúÖÆ¶Ô´«ÆæÓÎÏ·¸ß²¢·¢µÄ×÷ÓÃ
Ï̳߳ػúÖÆÔÚ´«ÆæÓÎÏ·µÄ¸ß²¢·¢³¡¾°Öз¢»Ó×ÅÖØÒª×÷Óá£Ôڸ߲¢·¢µÄ´«ÆæÓÎÏ·ÖУ¬´´½¨ºÍÏú»ÙÏ̵߳ĿªÏúÏà¶Ô½Ï¸ß£¬¶øÏ̳߳ØÍ¨¹ýÖØ¸´Ê¹ÓÃÏÖÓÐỊ̈߳¬¼õÉÙÁËÕâÖÖ¿ªÏú¡£Ï̳߳ØÄܹ»ÏÞÖÆÏµÍ³ÖлÏ̵߳ÄÊýÁ¿£¬·ÀÖ¹×ÊÔ´¹ý¶ÈʹÓã¬Í¬Ê±ÌṩÁ˸üÇ¿µÄÈÎÎñ¹ÜÀíÄÜÁ¦£¬Ê¹µÃÈÎÎñ¹ÜÀí¸ü¼ÓÁé»îºÍ¸ßЧ¡£ÀýÈ磬ÔÚ´«ÆæÓÎÏ·µÄ·þÎñÆ÷¶Ë£¬µ±ÓдóÁ¿Íæ¼Òͬʱ½øÐвÙ×÷ʱ£¬Ï̳߳ؿÉÒÔºÏÀí·ÖÅäÏß³Ì×ÊÔ´£¬Ìá¸ßϵͳµÄÏìÓ¦ËÙ¶È¡£ÔÚ Java ÖУ¬Ï̳߳صÄ×÷ÓÃÊǹÜÀíÒ»×éỊ̈߳¬ÕâЩÏ߳̿ÉÒÔÖ´Ðжà¸öÈÎÎñ£¬¶øÎÞÐèΪÿ¸öÈÎÎñ´´½¨ÐµÄÏ̡߳£Ï̳߳صÄÓÅÊÆ°üÀ¨½µµÍ×ÊÔ´ÏûºÄ¡¢Ìá¸ßÏìÓ¦ËٶȺÍÌá¸ßÏ̵߳ĿɹÜÀíÐÔ¡£ºÏÀíʹÓÃÏ̳߳ؿÉÒÔ¼õÉÙ×ÊÔ´µÄ¿ªÏú£¬Í¨¹ý¸´ÓÃÏ߳̽µµÍ´´½¨Ïú»ÙÏß³ÌÔì³ÉµÄÏûºÄ¡£¶à¸öÏ̲߳¢·¢Ö´ÐÐÈÎÎñ£¬¿ÉÒÔÌá¸ß´«ÆæÓÎÏ·µÄÏìÓ¦ËÙ¶È¡£Í¬Ê±£¬Ï̳߳ؿÉÒÔ½øÐÐͳһµÄ·ÖÅä¡¢µ÷ÓÅºÍ¼à¿ØỊ̈߳¬Ìá¸ßÏ̵߳ĿɹÜÀíÐÔ¡£