MySQL¶ÔÓÚ³ÉΪһ¸ö·Ç³£¿ìËÙµÄÊý¾Ý¿â·þÎñÆ÷ÓÐ×ŵ±Ö®ÎÞÀ¢µÄÃûÉù£¬ËüÒ²·Ç³£ÈÝÒ×ÉèÖúÍʹÓá£Ëæ×ÅËü×÷ΪÍøÕ¾ºó¶ËÊý¾Ý¿âµÃÉùÍûÈÕÔö£¬ÆäЧ¹ûÔÚÈ¥Ä꿪ʼÓÐÃ÷ÏÔÌá¸ß¡£µ«ÊǺܶàMySQLÓû§¸ü¶àµØÖªµÀÈçºÎ´´½¨Ò»¸öÊý¾Ý¿â²¢±àд¶ÔËüµÄ²éѯ¡£¾ÍÏñ³ÉǧÉÏÍòµÄÈËͨ¹ýÔØÏÐϾʱÓÃLinux×öʵÑéÀ´Ñ§Ï°UnixÄÇÑù£¬ºÜ¶àÈËͨ¹ýÍæMySQLѧϰ¹ØϵÊý¾Ý¿â¡£ÕâЩMySQLÐÂÊֵĴó¶àÊý¼ÈûÓйØϵÊý¾Ý¿âÀíÂ۵ı³¾°£¬ÓÖûÓÐʱ¼äÔĶÁMySQLÊÖ²áÈ«ÎÄ¡£
Òò´Ë£¬ÎÒÃǾö¶¨Ñо¿Ä³Ð©·½·¨£¬Äã¿ÉÒÔÓÃÕë¶ÔÓÅ»¯ÐÔÄÜÀ´µ÷½ÚMySQL¡£ÔÚ¶ÁÍê±¾Îĺó£¬Ä㽫Àí½âһЩ°ïÖúÄãÉè¼ÆÄãµÄMySQLÊý¾Ý¿âºÍ²éѯµÄ¼¼Êõ£¬ÖµµÃÄãµÄÓ¦ÓúÜÓÐЧÂÊ¡£ÎÒÃǽ«¼Ù¶¨ÄãÊìϤMySQLºÍSQL»ù´¡£¬µ«²»¼Ù¶¨ÄãÓÐÕâÁ½·½ÃæµÄ¹ã²©ÖªÊ¶¡£
Ö»´æ´¢ÄãÐèÒªµÄÐÅÏ¢
ÕâÌýÉÏÈ¥Êdz£Ê¶£¬µ«ÈËÃdz£³£²ÉÈ¡¡°³ø·¿ÏÂË®µÀ¡±µÄ·½Ê½½øÐÐÊý¾Ý¿âÉè¼Æ¡£ËûÃÇÈÏΪ¿ÉÄÜÏîÒªµÃÿÑù¶«Î÷¶¼Òª´æ´¢²¢Éè¼ÆÊý¾Ý¿â±£´æËùÓÐÕßÕâЩÊý¾Ý¡£ÄãÐèÒª¶ÔÄãµÄÐèÇóÏÖʵЩ£¬²¢È·¶¨È¡È·ÊµÐèҪʲôÐÅÏ¢¡£Äã³£³£ÄÜËæÒâ²úÉúһЩÊý¾Ý¶ø²»°ÑËü´æÔÚÊý¾Ý¿â±íÖС£ÔÚÕâÖÖÇé¿öÏ£¬´ÓÒ»¸öÓ¦Óÿª·¢ÕߵĽǶȿ´Ò²ÓеÀÀíÕâÑù×ö¡£
ÀýÈ磬ÔÚÏßĿ¼µÄ²úÆ·±í¿ÉÄÜ°üº¬¸÷ÖÖ²úÆ·µÄÃû³Æ¡¢½éÉÜ¡¢³ß´ç¡¢ÖØÁ¿ºÍ¼Û¸ñ¡£³ýÁ˼۸ñ£¬Äã¿ÉÄÜÏë´æ´¢Ã¿¸öÏîÄ¿Ïà¹ØµÄË°ºÍÔËÊä³É±¾¡£µ«Êµ¼ÊÉϲ»±ØÕâÑù×ö¡£Ê×ÏÈË°ºÍÔËÊä³É±¾¿ÉÒÔ·½±ãµØ£¨ÓÉÄãµÄÓ¦ÓûòMySQL£©¼ÆËã³öÀ´¡£Æä´Î£¬Èç¹ûË°ºÍÔËÊä³É±¾¸Ä±äÁË£¬Äã¿ÉÄܱØÐë±àд±ØÒªµÄ²éѯ¸üÐÂÿ¸ö²úÆ·¼Ç¼ÖеÄË°ºÍÔËÊäµÄ·ÑÂÊ¡£
ÓÐʱÈËÃÇÈÏΪÕâÌ«ÄѲ»ÄÜÔÚÒÔºóÍùÊý¾Ý¿â±íÖмÓÈë×ֶΣ¬ËùÒÔËûÃǸоõ²»µÃ²»¶¨Ò御¿ÉÄܶàµÄÁС£ÕâÊÇÃ÷ÏԵĸÅÄî´íÎó¡£ÔÚMySQLÖУ¬Äã¿ÉÒÔÓÃALTER TABLEÃüÁî·½±ãµØÐÞ¸Ä±í¶¨ÒåÒÔÊÊÓ¦Äã¸Ä±äµÄÐèÇó¡£
ÀýÈ磬Èç¹ûÄãͻȻÈÏʶµ½ÄãÐèÒª¸øÄãµÄ²úÆ·±íÔö¼ÓÒ»¸ö¼¶±ðÁУ¨¿ÉÄÜÄãÏëÔÊÐíÓû§ÔÚÄãµÄĿ¼Öиø²úÆ·ÆÀ¼¶£©£¬Äã¿ÉÒÔÕâÑù×ö£º
ALTER TABLE products ADD rank INTEGER
Õâ¸øÄãµÄ²úÆ·±íÔö¼ÓÁËÒ»¸öÕûÊýÀàÐ͵ļ¶±ðÁУ¬ÄãÄÜÓÃALTER TABLE×öʲôµÄÍêÕû½éÉܲμûMySQLÊֲᡣ
Ö»ÒªÇóÄãÐèÒªµÄ¶«Î÷--ÒªÇåÎú
¾ÍÏñ˵¡°Ö»´æ´¢ÄãÐèÒªµÄ¶«Î÷¡±ÄÇÑù£¬Õâ¿ÉÄÜ¿´À´Êdz£Ê¶£¬µ«ÕâÒ»µã³£³£±»ºöÊÓ£¬ÎªÊ²Ã´ÄØ£¿ÒòΪÔÚÒ»¸öÓ¦Óÿª·¢Ê±£¬ÐèÇó¾³£¸Ä±ä£¬ËùÒԺܶà²éѯ×îÖÕ¿´À´ÊÇÕâÑù£º
SELECT * FROM sometable
µ±Äã²»Äܿ϶¨Ä㽫ÐèÒªÄÄÒ»ÁÐʱ£¬ÒªÇóËùÓÐÁÐÃ÷ÏÔÊÇ×îÊ¡Á¦µÄÊÂÇ飬Ȼ¶øËæ×ÅÄãµÄ±í²»¶ÏÔö´óºÍÐ޸ģ¬Õâ¿ÉÄܱä³ÉÒ»¸öÐÔÄÜÎÊÌâ¡£×îºÃÊÇÔÚÄãµÄ×î³õ¿ª·¢Íê³ÉºóÔÙ»¨Ð©Ê±¼ä²¢È·¶¨ÄãÕæÕý´ÓÄãµÄ²éѯÖÐÐèҪʲô£º
SELECT name, rank, description FROM products
Õâ´øÀ´ÁËÒ»¸öÏà¹ØµÄ¹Ûµã£¬¼´´úÂëά»¤±ÈÐÔÄܸüÖØÒª¡£´ó¶àÊý±ä³ÉÓïÑÔ£¨Perl¡¢Python¡¢PHP¡¢JavaµÈ£©ÔÊÐíͨ¹ý×Ö¶ÎÃûºÍÊý×Ö±àºÅ·ÃÎÊÒ»Ìõ²éѯµÄ½á¹û£¬ÕâÒâζ×ÅÄã¿ÉÒÔ·ÃÎÊÃüÃû×ֶλò×ֶΣ°¶¼¿ÉÒԵõ½ÏàͬµÄÊý¾Ý¡£
³¤ÆÚ¿´£¬×îºÃʹÓÃÁÐÃû¶ø²»ÊÇÆä±àºÅλÖã¬ÎªÊ²Ã´£¿ÒòΪһ¸ö±íÖлòÒ»Ìõ²éѯÖеØÁеÄÏà¶ÔλÖÿÉÒԸı䡣ËüÃÇÔÚ±íÖпÉÄÜÒòΪÖظ´Ê¹ÓÃALTER TABLE¶ø¸Ä±ä£¬ËüÃÇÔÚ²éѯÖн«ÒòÖØдÁ˲éѯ¶øÍü¼Ç¸üÐÂÓ¦ÓÃÂß¼À´Æ¥Åä¶ø¸Ä±ä¡£
µ±È»£¬ÄãÈÔÈ»ÐèҪСÐĸıäÁÐÃû£¡µ«Èç¹ûÄãʹÓÃÁÐÃû¶ø·Ç±êºÅλÖã¬ÈçÁÐÃû¸Ä±ä£¬Äã¿ÉÒÔÓÃgrepËÑË÷Ô´´úÂë»òʹÓñà¼Æ÷µÄËÑË÷ÄÜÁ¦²éÕÒÄãÐèÒªÐ޸ĵĴúÂë¡£
¹æ·¶»¯ÄãµÄ±í½á¹¹
Èç¹ûÄãÒÔÇ°´ÓδÌý˵¹ý¡°Êý¾Ý¹æ·¶»¯¡±£¬²»Òªº¦Å¡£¹æ·¶»¯¿ÉÄÜÊÇÒ»¸ö¸´ÔÓµÄרÌ⣬Äã¿ÉÒÔ´ÓÖ»Àí½â×î»ù±¾µÄ¹æ·¶»¯¸ÅÄîÖÐÕýÕæÕý»ñÒæ¡£
Àí½âËüµÄ×îÈÝÒ׵ķ½·¨ÊÇÈÏΪÄãµÄ±íÊÇÒ»¸öµç×Ó±¨±í¡£Èç¹ûÄãÏëÒÔÒ»¸ö±¨±í¸ú×ÙÄãµÄCDÊղأ¬Äã¿ÉÒÔÈçͼ£±ÖÖÄÇÑù½øÐÐÉè¼Æ£º
ͼ£±
album track1 track2 track10
----- ------ ------ -------
Billboard Top Hits - 1984 Loverboy Shout St. Elmo's Fire
(Billy Ocean) (Tears for Fears) (John Parr)
Õâ¿´ÉÏÈ¥ºÜºÏÀí¡£´ó¶àÊýCDÖ»ÓÐ10Ê×Çú×Ó£¬¶Ô·ñ£¿²»¾¡È»¡£Èç¹ûÄãÓµÓÐÒ»ÕÅÓÐ100Ê×Çú×ÓµÄCDÇÒ¼¸Õų¬¹ý20Ê׸ÄÔõô°ì¡£ÕâÒâζ×ÅÓÃÕâÖÖ·½·¨£¬ÔÚ¼«¶ËµÄÇé¿öÏ£¬Ä㽫ÐèÒªÒ»¸ö·Ç³£¿íµÄ±í¸ñ£¨»òÒ»¸ö³¬¹ý100¸ö×Ö¶ÎµÄ±í£©À´±£´æËùÓеÄÊý¾Ý¡£
¹æ·¶»¯±í½á¹¹µÄÄ¿±êÊÇʹ¡°¿Õµ¥Ôª¡±µÄÊýÁ¿×îÉÙ£¬ÔÚÉÏÊöCD±íµÄÇé¿öÏ£¬Èç¹ûÄãÔÊÐíCD¿ÉÄÜ°üº¬100Ê×Çú×Ó£¬Äã»áÓкܶàÕâÑùµÄ¿Õµ¥Ôª¡£²»¹ÜÄãºÎʱ´¦Àí¿ÉÄÜÀ©Õ¹µ½ÀàËƸÃCD±íÄÇÑùÊýÁ¿µÄ×Ö¶ÎÁÐ±í£¬ËüÊÇÄãÐèÒª½«ÄãµÄÊý¾Ý·Ö¸î³É2¸ö»ò¸ü¶à±íµÄ±êÖ¾£¬È»ºóÄãÒ»Æð·ÃÎʲ¢»ñµÃÄãÐèÒªµÄÊý¾Ý¡£
ºÜ¶à¹ØϵÊý¾Ý¿âµÄÐÂÊÖ²»ÕæÕýÖªµÀ¹ØϵÊý¾Ý¿â¹ÜÀíϵͳÖйØϵÊÇʲô¡£¼òµ¥µØ˵£¬¾ÍÏñÒ»×éÐÅÏ¢´æÔÚ¿ÉÒÔ»ùÓÚ¹²ÐÔÊý¾ÝÁª½á£¨JOIN£©ÔÚÒ»ÆðµÄ²»Í¬±íÖУ¬ºÜ²»ÐÒ£¬ÕâÌýÉÏÈ¥¸üѧÊõ»¯ºÍº¬ºý£¬µ«CDÊý¾Ý¿âÌá³öÁËÒ»¸ö¾ßÌåÇé¿ö£¬ÎÒÃÇ¿ÉÒÔÑо¿ÈçºÎ¹æ·¶Êý¾Ý¡£
ÿ¸öCDÁбíÓÐÒ»¸ö¹Ì¶¨µÄÊôÐÔ£¨±êÌâ¡¢ÒÕÊõ¼Ò¡¢Äê·Ý¡¢·ÖÀࣩ¼¯ºÍÒ»¸ö²»¶¨µÄÊôÐÔ£¨ÇúÄ¿±í£©¼¯µÄÀí½â¸øÁËÎÒÃÇһЩÈçºÎ·Ö³É³ÉÄÜÏ໥¹ØÁªµÄ±íµÄ˼·¡£
Äã¿ÉÒÔ´´½¨Ò»¸öËùÓÐר¼¼°Æä¹Ì¶¨ÊôÐÔµÄ±í£¬ÁíÒ»¸ö°üº¬ÕâЩר¼µÄËùÓÐÇúÄ¿µÄ±í¡£ÕâÑù²»ÊÇˮƽ˼¿¼£¨Ïñ±í¸ñ£©£¬Ä㴹ֱ˼¿¼--¾ÍºÃÏñÄã´´½¨Áбí¶ø²»ÊÇÐÐ--²¢½¨Á¢Ò»¸öÈçͼ2µÄ±í½á¹¹£º
ר¼µÄ±àºÅ£¨MySQL¾µ×Ô¶¯ÎªÄãÉú³É£¬ÒòΪÎÒÃÇÔÚÁÐÉÏʹÓÃÁËAUTO_INCREMENTÊôÐÔ£©¹ØÁª²»Í¬ÇúÄ¿µ½Ò»¸ø¶¨×¨¼£¬tracks±íÖеÄalbum_id×Ö¶ÎÆ¥Åäר¼±íÖеÄÒ»¸öid¡£ÕâÑùÒª»ñµÃ¸ø¶¨×¨¼µÄËùÓÐÇúÄ¿£¬ÄãÓ¦¸ÃÓÃÈçϲéѯ£º
¡¡
ÒýÓÃ:SELECT tracks.num, tracks.name
FROM albums, tracks
WHERE albums.title = 'Billboard Top Hits - 1984'
AND albums.id = tracks.album_id
¸Ã½á¹¹¼´Áé»îÓÖÓÐЧ¡£Áé»îÐÔÀ´×ÔÄã¿ÉÒÔÔÚÒÔºó½«Êý¾Ý¼ÓÈëϵͳ¶ø²»±ØÖØÐÂÄãÒÑÍêÕûµÄ¹¤×÷µÄÊÂʵ¡£ÀýÈ磬Èç¹ûÄãÏëÔö¼ÓÿһÕÅר¼µÄÒÕÊõ¼ÒÐÅÏ¢£¬Äã¿ÉÒÔ´²¼ÜÒ»¸öartists±í£¬¹ØÁªµ½albums±í£¬¾ÍÏñtracksÄÇÑù¡£ÄãÎÞÐèÐÞ¸ÄÏÖÓеĽṹ--Ö»ÊÇÔö¼ÓËü¡£
ÓÐЧÐÔÀ´×ÔÓÚÔÚÄãµÄÊý¾ÝÖÐûÓÐÃ÷ÏÔµÄÊý¾ÝÖظ´ÇÒûÓдóÁ¿µÄ¿Õ¶´£¨¿Õµ¥Ôª£©µÄʵʩ¡£ÕâÑùMySQLÔÚÄãµÄÊý¾Ý¿â±íÖмȲ»´æ´¢¶àÓàµÄÊý¾Ý£¬Ò²²»±È»¨¶îÍâµÄ¾«Á¦ËÑË÷´óÁ¿¿ÕÇøÓò¡£
Èç¹ûÄã¶Ô¹ØϵÊý¾Ý¿âÊÇÐÂÊÖ£¬¹æ·¶»¯ÄãµÄÊý¾Ý¿´ÆðÀ´ÓеãÆæ¹Ö£¬µ«ÔÚ´æ´¢ºÍ¼ìË÷Êý¾Ýʱ£¬ËüʹMySQL·Ç³£ÓÐЧ£¬²¢¸øÓèÄãÀ©Õ¹ºÍÉìËõÄãµÄÓ¦ÓÃÈ´²»±Ø¶à´ÎÖع¹ÄãµÄÊý¾Ý¿âµÄÁé»îÐÔ¡£¾¡¿ÉÄÜÔçµÄ»¨Ê±¼äÏëÇå³þÊý¾Ý¿âÉè¼Æ£¬²¢¿¼ÂÇÄãµÄÐèÇóÔõÑùËæʱ¼äÔö³¤£¬Ç°ÆÚ»¨µÄʱ¼äÓÀÔ¶ÊÇÖµµÃµÄ¡£
¸´ºÏË÷Òý
¸´ºÏË÷Òý£¨ÓÐʱ³Æ×éºÏË÷Òý£©ÊǼ±ÓÚ¶à¸öÁеĵ¥Ò»Ë÷Òý¡£MySQLÔÚ´¦ÀíÒ»Ìõ²éѯʱÿ¸ö±íֻʹÓÃÒ»¸öË÷Òý£¬ÕâÒâζ×ÅÈç¹ûÄãÓжà¸ö¾³£³öÏÖÔÚWHERE×Ó¾äÖеÄÁУ¬Äã¿ÉÄÜҪͨ¹ý´´½¨Ò»¸ö¸´ºÏË÷ÒýÀ´¼Ó¿ìÕâЩ²éѯ¡£
¿¼ÂÇÏÂÁбí½á¹¹Æ¬¶Ï£º
¡¡
ÒýÓÃ:CREATE TABLE people (
last_name VARCHAR(50) NOT NULL,
first_name VARCHAR(50) NOT NULL,
favorite_color VARCHAR(10) NOT NULL,
.
.
.
);
Èç¹ûÄã³£³£»ùÓÚlast_nameºÍfirst_name²éѯ±í£¬Äã¿ÉÒÔ´Ólast_nameºÍfirst_nameµÄ¸´ºÏË÷ÒýÖлñÒ棺
INDEX last_first (last_name, first_name)
ÓÉÓÚMySQL¹¹½¨¸´ºÏË÷ÒýµÄ·½Ê½£¬Ëü¿ÉÒÔʹÓÃlast_firstË÷ÒýÀ´»Ø´ð»ùÓÚlast_name±¾Éí»òlast_nameÓëfirst_nameÁ½ÕßµÄË÷Òý¡£ÕâÊÇÒòΪÈç¹ûÁÐÉæ¼°¸´ºÏË÷ÒýµÄ¡°×î×óǰ׺¡±µÄÐÎʽ£¬MySQL½«Ö»Ê¹ÓÃÒ»¸ö¸´ºÏË÷Òý¡£
ËùÒÔÈç¹ûÒ»¸ö¸´ºÏË÷ÒýÓжà¸öÁкϳɣº
INDEX big_index (a, b, c, d, e, f, g, h, i)
MySQL¿ÉÒÔÓÃËüÀ´»Ø´ð»ùÓÚa¡¢»òaºÍb¡¢»òaºÍbºÍc¡¢»òaºÍbºÍcºÍdµÄ²éѯ¡£µ«Ëü²»ÄÜʹÓÃbig_index´¦Àí»ùÓÚe¡¢»òcºÍf¡¢»ògºÍiµÄ²éѯ£¬ÒòΪÕâЩÐòÁÐûÓÐÒ»¸öÊÇ´ÓË÷ÒýµÄ×î×ó±ß¿ªÊ¼µÄ¡£
¸´ºÏË÷Òý³¢±»ÓÃÓÚ¼Ó¿ìijЩ¸´ÔÓ²éѯ£¬µ«ÄãÐèÒªÀí½âÆð¾ÖÏÞ£¬¶øÇÒÄãÓÀÔ¶Ó¦¸Ã½øÐÐһЩ²âÊÔ£¬¶ø²»ÊǼòµ¥µØ¼ÙÉèÕâÑùÒ»¸öË÷Òý½«»áÓаïÖú¡£
ʹÓÃË÷Òý¼Ó¿ì²éѯ
µ±MySQLÊÔͼ»Ø´ïÒ»Ìõ²éѯʱ£¬Ëü²é¿´ÓйØÄãµÄÊý¾ÝµÄ¸÷ÖÖͳ¼Æ£¬²¢¾ö¶¨ÈçºÎÒÔ×î¿ìµÄËÙ¶ÈÕÒ³öÄãÏëÒªµÄÊý¾Ý¡£¶ÔÓÚǰС½ÚµÄ²éѯ£¬MySQL½«¶ÁÈ¡albums±íµÄËùÓÐtitles²¢°ÑËüÃÇÓë¡°Billboard Top Hits --1984¡±½øÐбȽϿ´ÊÇ·ñÆ¥Åä¡£ËüÒ»µ©ÕÒµ½Ò»¸öÆ¥Å仹²»ÄÜÍ£Ö¹£¬ÒòΪÓÐÏàͬÇúÄ¿µÄר¼²»Ö¹Ò»¸ö£¨ÈçÄã¿ÉÒÔÓÐ12ÕÅCD±êÓС°Greatest Hits¡±£©£¬½á¹ûMySQL±ØÐë¶ÁÈ¡±íÖеÄÿһÐС£Õâ³£³ÆΪ¡°È«±íɨÃ衱ÇÒ¿ÉÒÔ±ÜÃâ¡£
ÄãÓ¦¸Ã±ÜÃâÈ«±íɨÃ裬ÒòΪ£º
CPU¿ªÏú£ºÈç¹ûÄãûÓкܶàר¼£¬¼ì²éËùÓÐÕâЩ±êÌâµÄ´¦ÀíÏà¶Ô¿ìЩ¡£µ«Èç¹ûÄãÐèÒªÔÚÄãµÄÊý¾Ý¿âÖд洢ºÜ¶àר¼ÄØ£¿ÄãÓеÄר¼Ô½¶à£¬»¨µÄʱ¼äÔ½³¤¡£ÔÚר¼ÊýÁ¿»ò¼ì²éËüÃÇËù»¨µÄʱ¼äʱ¼ä´æÔÚÒ»ÖÖÏßÐÔ¹Øϵ¡£
²¢·¢ÐÔ£ºÔÚMySQLÕýÔÚ´Ó±íÖжÁÈ¡Êý¾Ýʱ£¬ËüËø¶¨±íʹµÃûÓÐÆäËûÈË¿ÉÒÔдÈ룬µ«¿ÉÒÔ¶ÁÈ¡¡£µ±MySQL¸üлòɾ³ý±íÖеÄÐÐʱ£¬ËüËø¶¨±íʹµÃûÓÐÆäËûÈË¿ÉÒÔ´ÓËü¶ÁÈ¡¡£
´ÅÅÌ¿ªÏú£ºÔÚÒ»¸ö´óÊý¾Ý±íÉÏ£¬Ò»´ÎÈ«±íɨÃ轫ÏûºÄ´óÁ¿´ÅÅÌI/O¡£Õâ¿ÉÄÜÃ÷ÏԵؼõÂýÄãµÄÊý¾Ý¿â·þÎñÆ÷ -- ÌرðÊÇÈç¹ûÄãµÄ·þÎñÆ÷ÊǽÏÂýµÄIDEÇý¶¯Æ÷¡£
×îºÃÊÇÈÃÈ«±íɨÃ轫µ½×îÉÙ --¡¡ÌرðÊÇÄãµÄÓ¦ÓÃÐèÒªÒÔ¹æÄ£»òÓû§ÊýÉìËõ¡£MySQL×îаæȷʵÓм¸¸ö²¢·¢ÐÔ·½ÃæµÄ¸ÄÉÆ£¨BDB¡¢InnoDBºÍGemini±íÀàÐÍ£©¡£
ÔÚÕâÀïË÷Òý¿ÉÒÔ°ïÖúÄ㣬¼òµ¥µØ·ÅÒ»¸ö£¬Ò»¸öË÷ÒýÔÊÐíMySQLºÜ¿ìµØÈ·¶¨Èκθø¶¨ÖµÈç¡°Billboard Top Hits -- 1984¡±ÊÇ·ñ½«Æ¥Åä±íÖеÄÈκÎÐС£
ÔõÑù×öµ½µÄÄØ£¿µ±Äã¸æËßMySQLË÷ÒýÒ»¸öÌض¨ÁÐʱ£¬ËüÔÚÄ»ºó´´½¨ÁíÒ»¸öÊý¾Ý½á¹¹£¨Ë÷Òý£©²¢ÓÃËü´æ´¢¹ØÓÚ±»Ë÷ÒýÁÐÖеÄÖµµÄijЩ¶îÍâÐÅÏ¢£¨±»Ë÷ÒýµÄÖµ³£³ÆΪ½¡Â룩¡£ÕâÊÇÒ»ÖÖ¼ò»¯£¬MySQL½«ËùÓмüÂë´æ´¢ÔÚÒ»¸öÊ÷×´Êý¾Ý½á¹¹ÖС£¸ÃÊý¾Ý½á¹¹ÔÊÐíMySQL·Ç³£¿ìËÙµØÕÒµ½Ìض¨¼üÂë¡£
µ±MySQL·¢ÏÖÁÐÉÏÓÐÒ»¸öË÷Òý£¬Ëü½«Ê¹ÓÃË÷Òý¶ø²»ÊÇÖ´ÐÐÒ»¸öÈ«±íɨÃè¡£Õâ½ÚÊ¡ÁËCPUʱ¼ä£¨²»±Ø¶ÁÈ¡ËùÓпÉÄܵÄÖµ£©ºÍ´ÅÅÌI/O£¬¶øÇÒËü¸ÄÉÆÁ˲¢·¢ÐÔ£¬ÒòΪMySQLÖ»Ëø¶¨±í×ã¹»³¤µÄʱ¼äÀ´»ñµÃËùÐèµÄÐУ¨»ùÓÚËüÔÚË÷ÒýÖÐÕÒʲô£©¡£µ±ÄãÔÚ±íÖÐÓдóÁ¿µÄÊý¾Ý£¬×îÖյĸÄÉÆ¿ÉÄܷdz£Ã÷ÏÔ¡£
¶Ôͼ3µÄalbums±íµÄCREATE TABLEÓï¾äµÄ¸Ä½ø£º
ͼ3
ÒýÓÃ:CREATE TABLE albums (
id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(80)NOT NULL,
INDEX title_idx (title)
);
ÕýÈçÄãËù¼ûµÄ£¬Óï¾äÖ»ÊǼòµ¥µØÔÚ¶¨ÒåºóÔö¼ÓÁËÒ»¸öINDEXÐиæËßMySQLÔÚalbums±íÖеÄtitleÁÐÉÏ´´½¨ÃûΪtitle_idxµÄË÷Òý¡£Äã¿ÉÒÔ¸øÒ»¸ö±íÔö¼Ó¶à¸öË÷Òý£¬¾ÍÏñÄã¿ÉÔÚ±íÖÐÓжà¸öÁÐÒ»Ñù¡£µ¥¸öË÷ÒýÒ²¿ÉÒÔÓжà¸öÁкϳɡ£
Òª¸øÏÖÓеıí¼ÓÉÏÒ»¸öË÷Òý¶ø²»ÊÇÖؽ¨±í£¬Äã¿ÉÒÔÓÃALTER TABLEÃüÁ
ALTER TABLE albums ADD INDEX title_idx (title)
²éѯ´¦Àí
Èç¹ûÄãµÄ²éѯ¸´ÔÓ£¬MySQLÓÃÓÚ¾«È·È·¶¨ÈçºÎ»ñÈ¡Êý¾ÝµÄÔÔò¿ÉÄܱäµÃÄÑÓÚÀí½â¡£ÐÒÔ˵ÄÊÇ£¬Óм¸¸öÒ»°ãÔÔòºÍÒ»ÌõÃüÁîÔÊÐíÄã»ñµÃÕýÔÚ×öʲôµÄ¸üºÃµÄÀí½â¡£Ê×ÏÈ£¬ÔÔòÊÇ£º
Èç¹ûMySQLÈ·¶¨Á˼òµ¥µØɨÃèÈ«±í¸ü¿ìЩ£¬ÔòËüL½«²»Ê¹ÓÃË÷Òý¡£Ò»°ãµØ£¬Èç¹ûÒ»¸öË÷Òý¸æËßMySQL·ÃÎʱíÖдó¸Å30%µÄÐУ¬Ëü·ÅÆúË÷Òý²¢¼òµ¥µØÖ´ÐÐÈ«±íɨÃè¡£
Èç¹û¶àË÷Òý¿ÉÒÔÓÃÀ´Âú×ã²éѯ£¬MySQL½«Ê¹ÓÃ×îÑϸñµÄÒ»¸ö -- ¼´µ¼ÖÂ×îÉÙµÄÐб»ÌáÈ¡µÄÄǸö¡£
Èç¹ûÄãÕýÔÚÑ¡ÔñµÄÁÐÊÇÒ»¸öË÷ÒýµÄËùÓв¿·Ö£¬MySQL¿ÉÒÔÖ±½Ó´ÓË÷ÒýÖжÁÈ¡ËøÐèµÄÊý¾Ý£¬¾ø²»½Ó´¥£¨»òËø¶¨£©±í±¾Éí¡£
µ±Áª½á¼¸¸ö±íʱ£¬MySQL½«Ê×ÏÈ´Ó¿ÉÄÜ·µ»Ø×îÉÙÐеıíÖжÁÈ¡Êý¾Ý¡£ÄãÖ¸¶¨±íµÄ´ÎÐò¿ÉÄÜÓëMySQLʹÓÃËüÃǵĴÎÐò²»Í¬£¬ÕâÒ²Ó°Ïìµ½×îÖÕ·µ»Ø¸øÄãµÄÐеĴÎÐò£¬ËùÒÔÈç¹ûÄãÐèÒªÐÐÒÔÌض¨µÄ´ÎÐò³öÏÖ£¬Òª±£Ö¤ÔÚÄãµÄ²éѯÖÐʹÓÃÒ»¸öORDER×Ӿ䡣
ÒѾ˵Á˺ܶàÁË£¬ÖØÒªµÄÊÇÈÏʶµ½MySQLËù×öµÄһЩ¾ö²ßʵ¼ÊÉÏÊÇ»ùÓڲ²⣬¾ÍÏñÈËÀà½øÐдóÁ¿²Â²âÒ»Ñù£¬Å¼¶ûÒ²»á³ö´í¡£
Èç¹ûÄ㻳ÒÉÒѾ·¢Éú»òÖ»ÊÇÏëÀí½âMySQLÔõÑù´¦ÀíÒ»Ìõ²éѯ£¬Äã¿ÉÒÔʹÓÃEXPLAINÃüÁî¡£¼òµ¥µØÔÚÄãµÄ²éѯǰÃæ¼ÓÉÏEXPLAINÕâ¸ö×Ö£¬²¢ÒªÇóMySQLÖ´ÐÐËü£¬MySQL²»Ö´Ðвéѯ£¬Ïà·´½«±¨¸æÓÐÖúÓÚ²éѯµÄºòÑ¡Ë÷ÒýÁбíºÍËùÖªµÀµÄÓйØËüÃǵÄÒ»ÇС£
EXPLAINÊä³öµÄÍêÕûÌÖÂ۲μûMySQL²Î¿¼Êֲᡣ
²»Òª¹ý·ÖʹÓÃË÷Òý
ÒѾ֪µÀË÷Òýʹ²éѯ¸ü¿ì£¬Äã¿ÉÄÜÇãÏòÓÚË÷ÒýÄã±íÖеÄÿ¸öÁС£µ«ÊǵÃÒæÓÚË÷ÒýµÄÐÔÄÜÌá¸ßÊÇÓдú¼ÛµÄ£¬ÔÚ±íÖÐÿ´ÎÖ´ÐÐINSERT¡¢UPDATE¡¢REPLACE»òDELETE£¬MySQL²»µÃ²»¸üбíÉϵÄÿ¸öË÷ÒýÒÔ·´Ó³±ä»¯¡£
ÄÇôÄãÈçºÎÈ·¶¨ºÎʱʳÓÃËüÃÇÄØ£¿×î³£¼ûµÄ´ð°¸ÊÇ¡°¿´Çé¿ö¡±¡£ËüÒÀÀµÄãÔËÐеIJéѯÀàÐͺÍÄãÔËÐÐËüÃǵÄƵ¶È£¬ËüÒÀÀµÓÚÄãµÄÊý¾Ý£¬ËüÒÀÀµÓÚÄãµÄÆÚÍûºÍÐèÇó¡£ÄãµÃµ½ÁË´ð°¸ -- ËüÒÀÀµÓںܶàÊÂÇé¡£
ÔÚÁÐÉÏÓÐË÷ÒýµÄÀíÓÉÊÇMySQLËõÕÆäËÑË÷·¶Î§ÒԱ㾡¿ÉÄÜ»áµÄÆ¥ÅäÐУ¨ÇÒ±ÜÃâÈ«±íɨÃ裩¡£Äã¿ÉÒÔÈÏΪË÷ÒýÊǶÔÁÐÖеÄÿ¸öΨһֵֻ°üº¬Ò»Ïî¡£ÔÚË÷ÒýÖУ¬MySQL±ØÐ뿼ÂÇÈκÎÖظ´Öµ£¬ÕâЩÖظ´ÖµÉÔ΢½µµÍЧÂʺÍË÷ÒýµÄÓÃ;¡£
ËùÒÔÔÚË÷ÒýÒ»¸öÁÐ֮ǰ£¬¿¼ÂÇÊý¾ÝÖظ´µÄ°Ù·Ö±È£¬Èç¹û¸Ã°Ù·Ö±ÈÌ«¸ß£¬Äã¿ÉÄܾõ²ì²»µ½ÓÃË÷Òý´øÀ´µÄÈκÎÐÔÄܸÄÉÆ¡£
ÒªÒÔ¸ü¼òÃ÷µÄÊõÓïÃèÊö£¬ËüÇå³þµØÖªµÀÔÚalbums±íÖÐË÷ÒýÇúÄ¿×ֶΣ¬ÒòΪÓпÉÄÜÓдóÁ¿²»Í¬µÄÖµ£¬¶øÇÒÖظ´·Ç³£ÉÙ¡£µ«Èç¹ûÔÚalbums±íÖÐÓÐÒ»¸ö·ÖÀàÁУ¬Ë÷ÒýËüÔò¿ÉÄܼÛÖµ²»´ó£¬Ò»°ãµÄCDÊÕ¼¯°üº¬¶àÉÙ²»Í¬µÄÀàÐÍÄØ£¿½«»áÓкܶàÖظ´µÄÀàÐÍÖµ¡£
ÁíÒ»¼þÒª¿¼ÂǵÄÊÂÇéÊÇÄãµÄ²éѯ¿ÉÄÜʹÓõÄƵ¶È¡£MySQLÖ»ÄܶԳöÏÖÔÚÒ»Ìõ²éѯÖÖµÄWHERE×Ó¾äÖеÄÌض¨ÁÐʹÓÃË÷Òý£¬ÊÔͼ»Ø´ð²éѯ£º
SELECT * FROM albums WHERE id = 500
MySQL²»ÄÜʹÓÃÔÚtitleÉϵIJéѯ£¬¸Ã²éѯҪÇóMySQL»ùÓÚÆäid²éÕҼǼ¶ø²»ÊÇÆätitle¡£
Èç¹ûÄãºÜÉÙʹÓòéѯÖÐWHERE×Ó¾äÖеÄÒ»¸öÁУ¬Ëü¿ÉÄܲ»ÖµµÃË÷Òý¸ÃÁС£¿ÉÄÜÔÚ¼«ÉÙµÄÇé¿öÏÂÈÝÈËÈ«±íɨÃè±ÈÒªÇóMySQLÔÚÿ´ÎÐÞ¸Äʱ±£³ÖË÷Òý¸üÐÂ×ÜÌåÉϸüÓÐЧЩ¡£.
ÓÐÒÉÎÊʱ£¬½øÐвâÊÔ¡£Äã×ÜÄÜÔËÐÐijЩµ½Ë÷Òý»ò²»´øË÷ÒýµÄ»ù×¼²âÊÔ¿´ÄÄÒ»¸ö¸ü¿ì£¬Ö»ÒªÊÔͼÈÃÄãµÄ»ù×¼²âÊÔ±ÆÕæЩ¡£Èç¹ûÄãµÄ²éѯÓÐ20%ÊÇUPDATE£¬80%ÊÇSLEECT£¬¿Ï¶¨ÄãµÄ»ù×¼²âÊÔÄÜ·¢Ó³³öÀ´£¬Ïê¼ûMySQL²Î¿¼Êֲᡣ
ʹÓÃREPLACE²éѯ
ÓпÉÄÜÄãÏëÍù±íÖвåÈëÒ»Ìõ¼Ç¼£¬³ý·ÇËüÒѾ´æÔÚ¡£Èç¹û¼Ç¼ÒѾ´æÔÚ£¬ÄãÏëUPDATEËü¡£²»ÊÇÖØд´úÂëÖÐ×öÕâ¼þʵÄÂß¼£¬²¢ÐèÔËÐжà¸ö²éѯ£¬¶øÊÇMySQLʹÓÃREPLACEÀ´×ö´ËÏ×÷¡£
Èç¹ûidÊÇ6µÄר¼¼Ù¶¨ÓÐÇúÄ¿¡°Shaking the Tree¡±£¬Äã¿ÉÒÔÕâÑùд²éѯ£º
REPLACE INTO albums VALUES (6, 'Shaking the Tree')
ÖØÒªµÄÊÇÀí½âREPLACEÈçºÎÈ·¶¨Ò»Ìõ¼Ç¼ÊÇ·ñÔÚ±íÖдæÔÚ¡£MySQL½«ÔÚ±íÉÏʹÓÃPRIMARY KEY»òUNIQUE KEYÀ´Ö´Ðмì²é£¬Èç¹û¶¼²»´æÔÚ£¬REPLACEЧ¹ûÉϱä³ÉÁËINSERT¡£
ʹÓÃÁÙʱ±í
µ±¹¤×÷Ôڷdz£´óµÄ±íÉÏʱ£¬Äã¿ÉÄÜż¶ûÐèÒªÔËÐкܶà²éѯ»ñµÃÒ»¸ö´óÁ¿Êý¾ÝµÄСµÄ×Ó¼¯£¬²»ÊǶÔÕû¸ö±íÔËÐÐÕâЩ²éѯ£¬¶øÊÇÈÃMySQLÿ´ÎÕÒ³öËùÐèµÄÉÙÊý¼Ç¼£¬½«¼Ç¼ѡÔñµ½Ò»¸öÁÙʱ±í¿ÉÄܸü¿ìЩ£¬È»ºó¶àÕâЩ±íÔËÐвéѯ¡£
´´½¨ÁÙʱ±íºÜÈÝÒ×£¬¸øÕý³£µÄCREATE TABLEÓï¾ä¼ÓÉÏTEMPORARY¹Ø¼ü×Ö£º
CREATE TEMPORARY TABLE tmp_table (
name VARCHAR(10) NOT NULL,
value INTEGER NOT NULL
)
ÁÙʱ±í½«ÔÚÄãÁ¬½ÓMySQLÆÚ¼ä´æÔÚ¡£µ±Äã¶Ï¿ªÊ±£¬MySQL½«×Ô¶¯É¾³ý±í²¢ÊÍ·ÅËùÓõĿռ䡣µ±È»Äã¿ÉÒÔÔÚÈÔÈ»Á¬½ÓµÄʱºòɾ³ý±í²¢Êͷſռ䡣
DROP TABLE tmp_table
Èç¹ûÔÚÄã´´½¨ÃûΪtmp_tableÁÙʱ±íʱÃûΪtmp_tableµÄ±íÔÚÊý¾Ý¿âÖÐÒѾ´æÔÚ£¬ÁÙʱ±í½«ÓбØÒªÆÁ±Î£¨Òþ²Ø£©·ÇÁÙʱ±ítmp_table¡£
Èç¹ûÄãÉùÃ÷ÁÙʱ±íÊÇÒ»¸öHEAP±í£¬MySQLÒ²ÔÊÐíÄãÖ¸¶¨ÔÚÄÚ´æÖд´½¨Ëü£º
¡¡
ÒýÓÃ:CREATE TEMPORARY TABLE tmp_table (
name VARCHAR(10) NOT NULL,
value INTEGER NOT NULL
) TYPE = HEAP
ÒòΪHEAP±í´æ´¢ÔÚÄÚ´æÖУ¬Äã¶ÔËüÔËÐеIJéѯ¿ÉÄܱȴÅÅÌÉϵÄÁÙʱ±í¿ìЩ¡£È»¶ø£¬HEAP±íÓëÒ»°ãµÄ±íÓÐЩ²»Í¬£¬ÇÒÓÐ×ÔÉíµÄÏÞÖÆ¡£Ïê¼ûMySQL²Î¿¼Êֲᡣ
ÕýÈçÇ°ÃæµÄ½¨Ò飬ÄãÓ¦¸Ã²âÊÔÁÙʱ±í¿´¿´ËüÃÇÊÇ·ñÕæµÄ±È¶Ô´óÁ¿Êý¾Ý¿âÔËÐвéѯ¿ì¡£Èç¹ûÊý¾ÝºÜºÃµØË÷Òý£¬ÁÙʱ±í¿ÉÄÜÒ»µã²»¿ì¡£
ÁÙʱ±íÔÚMySQL 3.23.0ºÍ¸üаæ²ÅÓС£
Ö»ÓÃ×îаæµÄMySQL
2001ÄêÒ»ÔÂÖÐÑ®£¬MySQL 3.23Ðû²¼Îȶ¨¡£³ýÁ˺óºÜ¶àй¦ÄÜÍ⣬ËüÒ²±È3.22ϵÁиü¿ìºÍ¸ü¾ßÉìËõÐÔ¡£
MySQLµÄ¸üа治¶ÏÍƳö¡£Èç¹ûÄã¿ØÖÆ×ÅÄãµÄMySQL·þÎñÆ÷£¬×îºÃÊdz¢ÊÔ±£³Ö°æ±¾Ïà¶Ô×îС£³ýÁËÓÐ×îй¦ÄܺʹíÎóÐÞÕý£¬Äã³£³£»á¿´µ½½ÏеÄMySQL·¢ÐÐÓÐÃ÷ÏÔµÄÐÔÄÜÌá¸ß¡£
ÆäËû×ÊÔ´
³ýÁËÔĶÁMySQLÊֲᣬÄãÒ²¿ÉÒÔ×Éѯ£º
ÄãµÄDBA£ºÈç¹ûÄãÔÚÒ»¸ö¹²Ïí·þÎñÆ÷ÉÏʹÓÃMySQL£¬Ä³¸öÈ˱»Ö¸¶¨ÎªÊý¾Ý¿â¹ÜÀíÔ±£¨DBA£©£¬ÕâÊÇÒ»¸öºÃ»ú»á¡£Èç¹ûÄãµÄDBA·Ç³£ÊìϤMySQL£¬Ëü¿ÉÄÜ¿ÉÒÔÔÚ·ÖÎöºÍÓÅ»¯ÄãµÄ±í½á¹¹ºÍ²éѯÉÏ°ïÄãһϡ£
MySQLÓû§ÓʼþÁÐ±í£ºÓзdz£»îÔ¾µÄÓʼþÁÐ±í£¬ÔÚÆäÖÐMySQLÓû§¾³£±Ë´ËÑ°Çó°ïÖú¡£ÐÂÊÖºÍÀÏÊÖÔ¸Òâ·ÖÏíÆä֪ʶ²¢±Ë´Ë°ïÖú½â¾ö¹²Í¬µÄÎÊÌ⡣ʵ¼ÊÉÏ£¬ÓÐЩMySQL¿ª·¢ÍŶӳÉÔ±ºÜºÃµØ¼àÊÓ×ÅÓʼþÁÐ±í¡£
MySQLÊé¼®£º²»ÒªÓëMySQL²Î¿¼ÊÖ²á»ìÏý£¬Paul DuBoisдÁËÒ»±¾¼«ºÃµÄÊéÃûΪ¡¶MySQL¡·µÄÊ飨ÓÐÖÐÎÄÒë±¾£©¡£