Chapter 4. Indexes
Ë÷ÒýÓÐÖúÓÚMySQLÔÚºÆÈçÑ̺£µÄÊý¾ÝÖÐѸËÙÕÒµ½ºÍÈ¡µÃÕýÈ·µÄ¼Ç¼¡£
4.1 Indexing Basics
4.1.1 Index Concepts
Ë÷ÒýÊǰ´ÕÕijÖÖ¹æÔòÅÅÐòµÄ¡£Ë÷ÒýÒ²¾ÍÊÇÎþÉüһЩ¿Õ¼äºÍcpuµÄ¿ªÏúÀ´Ê¹ÄãµÄ²éѯÅܵøü¿ìµã¡£ÁíÍâÌáÐѵÄÊÇ£¬¶ÔÓÚMySQLÀ´½²£¬ÊõÓï“Key”ºÍ“Index”ÊÇ¿ÉÒÔ»¥ÏàÌæ»»µÄ¡£
4.1.1.1 Partial indexes
Ë÷ÒýÊÇÒԿռ任ȡÐÔÄÜ¡£µ«ÓÐʱºò²»ÏëºÄ·ÑÌ«¶àµÄ¿Õ¼äµÄ»°£¬MySQLÓÐһϵÁпØÖÆË÷Òý¿Õ¼äµÄ·½·¨¡£ÀýÈçÄã¿ÉÒÔ¿ØÖÆË÷Òý×Ö½Ú£¬²ÉÈ¡²¿·ÖË÷ÒýµÄ·½·¨£¬µ±È»ÕâÑùÐÔÄܻήµÍһЩ¡£
ALTER TABLE
phonebook ADD INDEX
(last
name(4))
4.1.1.2 Multicolumn indexes
ʹÓöàÁÐË÷ÒýµÄÔÒòÔÚÓÚ£ºMySQL will only ever use one index per table per query¡£
4.1.1.3 Index order
MySQLÎÞÐèÈ˹¤¸ÉÔ¤Ë÷ÒýµÄÅÅÐò£¬Ëü»á´¦ÀíµÃºÜºÃ¡£
4.1.1.4 Indexes as constraints
ΨһË÷Òý£¨unique index£©±êÃ÷ÔÚ¸ø¶¨µÄÁÐÀïÌØÖµÖ»ÄܳöÏÖÒ»´Î¡£Î¨Ò»Ë÷ÒýÓÐÁ½¸ö×÷ÓãºÒ»¸ö¾ÍÊǰïÖú²éѯѸËÙ¶¨Î»£»¶þ¾ÍÊǵ±²åÈë»ò¸üÐÂʱ£¬±£Ö¤ÁÐÀïµÄÖµµÄΨһÐÔ¡£Õâ¾ÍÒâζ×Å£¬ÔÚÕâÀΨһË÷ÒýÆðµ½ÁËÔ¼ÊøµÄ×÷Óá£
ALTER TABLE
phonebook ADD UNIQUE
(phone
number)
4.1.1. ......
Êý¾Ý¿â´æ´¢ÖеÄÊý¾ÝÀàÐÍÓë´óС¸÷Òì¡£ÓÐЩµØ·½Ö»´æ´¢Êý×ÖÀàÐÍ£¬ÓÐЩֻ´æ´¢Îı¾ÀàÐÍ£¬ÓÐЩ¶þÕß¶ø¼æÖ®¡£¶øºÜ¶àÊý¾Ý¿âÖ§³Ö¸÷ÖÖרÓÃÀàÐÍ£ºÈÕÆÚºÍʱ¼äÀàÐÍ£¬¶þ½øÖÆ×Ö·ûÀàÐÍÒÔ¼°²¼¶ûÀàÐÍ¡£Ñ¡ÔñÊý¾ÝÀàÐÍÓëÊý¾ÝÏàÆ¥ÅäÊÇÊý¾Ý¿âÉè¼ÆÖÐ×îÎªÖØÒªµÄ²¿·Ö£¬ÒòΪÕâÖÖÀàÐͽ«»áÓ°Ïìµ½RDBMSµÄЧÂÊÓëÐÔÄÜ¡£ËùÒÔ£¬¶ÔRDBMSµÄÊý¾ÝÀàÐÍÑ¡ÔñÓ¦¸øÓè×ã¹»µÄÖØÊÓ¡£ Õâ¾ÍÊDZàд±¾ÎĵÄÖ÷ҪĿµÄ¡£±íA½«ÁоÙÁËMySQLÖ§³ÖµÄ¾ø´ó²¿·ÖÖØÒªµÄÊý¾ÝÀàÐÍ£¬¶øMySQLÊǵ±Ç°×îΪÁ÷ÐеÄÃâ·ÑRDBMS¡£ÎÄÖл¹ÃèÊöÁ˺ÎʱÓëÈçºÎʹÓÃÕâЩÊý¾ÝÀàÐÍ¡£Õ⽫ÓÐÖúÓÚ½¨Á¢Ò»¸öÊý¾Ý¿âµÄºÏÀíÉè¼Æ¡£ ±í A
Êý¾ÝÀàÐÍ
ÃèÊö
×Ö½Ú
ÍÆ¼öʹÓÃ
SMALLINT
ÕûÊý£¬´Ó-32000µ½ +32000·¶Î§
2
´æ´¢Ïà¶Ô±È½ÏСµÄÕûÊý¡£ ±ÈÈç: Äê¼Í£¬ÊýÁ¿
INT
ÕûÊý£¬´Ó-2000000000 µ½ +2000000000 ·¶Î§
4
´æ´¢ÖеÈÕûÊý ÀýÈç: ¾àÀë
BIGINT
²»ÄÜÓÃSMALLINT »ò INTÃèÊöµÄ³¬´óÕûÊý¡£
8
´æ´¢³¬´óµÄÕûÊý ÀýÈç: ¿ÆÑ§/ÊýѧÊý¾Ý
FLOAT
µ¥¾«¶È¸¡µãÐÍÊý¾Ý
4
´æ´¢Ð¡ÊýÊý¾Ý ÀýÈç:²âÁ¿£¬Î¶È
DOUBLE
Ë«¾«¶È¸¡µãÐÍÊý¾Ý
8
ÐèҪ˫¾«¶È´æ´¢µÄСÊýÊý¾Ý ÀýÈç:¿ÆÑ§Êý¾Ý
DECIMAL
Óû§×Ô¶¨Ò徫¶ÈµÄ¸¡µãÐÍÊý¾Ý
±äÁ¿;È¡¾öÓÚ¾«¶ÈÓ볤¶È
ÒÔÌØ±ð¸ßµÄ¾«¶È´æ´¢Ð¡ÊýÊý¾Ý¡£ Àý ......
ISAM
ISAMÊÇÒ»¸ö¶¨ÒåÃ÷È·ÇÒÀú¾Ê±¼ä¿¼ÑéµÄÊý¾Ý±í¸ñ¹ÜÀí·½·¨£¬ËüÔÚÉè¼ÆÖ®Ê±¾Í¿¼Âǵ½Êý¾Ý¿â±»²éѯµÄ´ÎÊýÒªÔ¶´óÓÚ¸üеĴÎÊý¡£Òò´Ë£¬ISAMÖ´ÐжÁÈ¡²Ù×÷µÄËٶȺܿ죬¶øÇÒ²»Õ¼ÓôóÁ¿µÄÄÚ´æºÍ´æ´¢×ÊÔ´¡£ISAMµÄÁ½¸öÖ÷Òª²»×ãÖ®´¦ÔÚÓÚ£¬Ëü²»Ö§³ÖÊÂÎñ´¦Àí£¬Ò²²»Äܹ»ÈÝ´í£ºÈç¹ûÄãµÄÓ²Å̱ÀÀ£ÁË£¬ÄÇôÊý¾ÝÎļþ¾ÍÎÞ·¨»Ö¸´ÁË¡£Èç¹ûÄãÕýÔÚ°ÑISAMÓÃÔڹؼüÈÎÎñÓ¦ÓóÌÐòÀÄǾͱØÐë¾³£±¸·ÝÄãËùÓеÄʵʱÊý¾Ý£¬Í¨¹ýÆä¸´ÖÆÌØÐÔ£¬MySQLÄܹ»Ö§³ÖÕâÑùµÄ±¸·ÝÓ¦ÓóÌÐò¡£
MyISAM
MyISAMÊÇMySQLµÄISAMÀ©Õ¹¸ñʽºÍȱʡµÄÊý¾Ý¿âÒýÇæ¡£³ýÁËÌṩISAMÀïËùûÓеÄË÷ÒýºÍ×ֶιÜÀíµÄ´óÁ¿¹¦ÄÜ£¬MyISAM»¹Ê¹ÓÃÒ»ÖÖ±í¸ñËø¶¨µÄ»úÖÆ£¬À´ÓÅ»¯¶à¸ö²¢·¢µÄ¶Áд²Ù×÷¡£Æä´ú¼ÛÊÇÄãÐèÒª¾³£ÔËÐÐOPTIMIZE TABLEÃüÁÀ´»Ö¸´±»¸üлúÖÆËùÀ˷ѵĿռ䡣MyISAM»¹ÓÐһЩÓÐÓõÄÀ©Õ¹£¬ÀýÈçÓÃÀ´ÐÞ¸´Êý¾Ý¿âÎļþµÄMyISAMChk¹¤¾ßºÍÓÃÀ´»Ö¸´À˷ѿռäµÄMyISAMPack¹¤¾ß¡£
MyISAMÇ¿µ÷ÁË¿ìËÙ¶ÁÈ¡²Ù×÷£¬Õâ¿ÉÄܾÍÊÇΪʲôMySQLÊܵ½ÁËWeb¿ª·¢Èç´ËÇàíùµÄÖ÷ÒªÔÒò£ºÔÚWeb¿ª·¢ÖÐÄãËù½øÐеĴóÁ¿Êý¾Ý²Ù×÷¶¼ÊǶÁÈ¡²Ù×÷¡£ËùÒÔ£¬´ó¶àÊýÐéÄâÖ÷»úÌṩÉ̺ÍInternetƽ̨ÌṩÉÌ£¨Internet Presence Provider£¬IPP£©Ö»ÔÊÐíʹÓÃMyISAM¸ñʽ¡£
HEAP
HEAPÔÊÐíֻפÁôÔ ......
ÆäʵÈç¹ûÄã·þÎñÆ÷ÖØÐ°²×°ÁË,Ò²²»±ØÖØÐ°²×°mysql ¼¸¸öСÃüÁî¾Í¸ã¶¨ÁË
Ê×ÏÈÊǰ²×°mysql·þÎñ:
mysql-nt –install
net start mysql
µ±È»Ó´ÔÚbinĿ¼ÔËÐÐÕâ¸öÃüÁîÁË
Ð¶ÔØµÄÃüÁîÊÇ:
net stop "MySQL"
mysqld-nt.exe –remove "MySQL"
ΪʲôÓеÄÅóÓÑÐ¶ÔØ²»ÁËÄØ,ÒòΪËûÒѾ°ÑÔ´Îļþ¶¼É¾³ýÁË »òÕßÔËÐÐÐ¶ÔØºó·þÎñ»¹ÔÚ µ«ÊÇÒѾ±äΪ½ûÓÃģʽ ÄÇÃ´ÖØÆôһϾͺÃÁË ......
ÎÒÃÇÓÃMaster-Slaves¼Ü¹¹½â¾öÁ˶ÁѹÁ¦±È½Ï´óµÄÓ¦Ó㬶øÎÒÃÇÓÃMaster-Master¼Ü¹¹½â¾öÁ˵¥µã·þÎñÎÊÌ⣬ÌṩÁËϵͳµÄ¿ÉÓÃÐÔ¡£µ«ÊÇÓÐʱÎÒÃÇÃæÁÙ¾Þ´óµÄ¶ÁÊý¾ÝѹÁ¦£¬ÌرðÊÇwebϵͳ£¬ÓÖÐèÒª½â¾öµ¥µã·þÎñµÄÎÊÌ⣬ΪӦÓÃÌṩ×ã¹»¸ßµÄ¿ÉÓÃÐÔ¡£ÕâʱÎÒÃǾÍÐèÒª½«ÕâÁ½Öּܹ¹½áºÏÆðÀ´¡£Õâ¾ÍÊÇMaster-Master-Slaves¼Ü¹¹¡£½á¹¹Í¼ÈçÏÂ
Master×éµÄ·þÎñÆ÷µÄÖ÷ÒªÌØµã£º
1. ¸ºÔðÓ¦Óÿͻ§¶ËµÄдÊý¾Ý´¦Àí¡£
2. ½â¾öµ¥µã·þÎñµÄ·½°¸£¬Ìá¸ß¿ÉÓÃÐԵķ½°¸¡£
3. ×÷Ϊslave×é·þÎñÆ÷µÄ¸´ÖÆÊý¾ÝÔ´¡£
Slave×éµÄ·þÎñÆ÷µÄÌØµã£º
1. ¸ºÔðÓ¦Óÿͻ§¶ËµÄ¶ÁÊý¾Ý´¦Àí¡£
2. ·Öµ£Ó¦ÓÃϵͳǿ´óµÄ¶ÁÊý¾ÝѹÁ¦¡£
3. ±£³ÖÓëmaster×éµÄÊý¾ÝÒ»Ö¡£ ......
Ö÷´ÓģʽµÄÌØÐÔ¾ÍÊÇһ̨·þÎñÆ÷×÷ΪÖ÷·þÎñÆ÷£¬ÆäÓà·þÎñÆ÷×÷Ϊ´Ó·þÎñÆ÷£¬Ö÷·þÎñÆ÷½ÓÊÕÔöɾ¸Ä²éµÄ²Ù×÷£¬´Ó·þÎñÆ÷Ö»ÄܽÓÊÕ²éµÄ²Ù×÷¡£
Ö÷·þÎñÆ÷½«Êý¾Ý¸üÐÂÖÁ´Ó·þÎñÆ÷ÊÇÒì²½µÄ£¬Òì²½µÄÓŵãÊÇ¿ÉÒÔÔÚ·þÎñÆ÷¿ÕÏÐÆÚ¼ä½øÐÐͬ²½£¬¶ø²»±ØÕ¼ÓýôȱµÄ×ÊÔ´£¬È±µã¾ÍÊÇ´Ó·þÎñÆ÷µÄÊý¾ÝºÜ¿ÉÄܲ»ÊÇ×îеġ£
Ö»ÄÜÓ¦ÓÃÓÚ¶ÔÊý¾Ýͬ²½ÒªÇ󲻸ߵij¡ºÏ£¬È磺
¸ºÔØ·Öµ£-Ö÷·þÎñÆ÷Ö»×öÔöɾ¸Ä£¬´Ó·þÎñÆ÷·Öµ£²éѯ¸ºÔØ
Êý¾Ý°²È«-´Ó·þÎñÆ÷²»ÄܽøÐÐÔöɾ¸Ä²Ù×÷
Êý¾Ý·ÖÎö-¶Ô´Ó·þÎñÆ÷½øÐдóÁ¿µÄ·ÖÎöͳ¼Æ²Ù×÷£¬²»Õ¼ÓÃÖ÷·þÎñÆ÷µÄÕý³£ÒµÎñ
Ô¶³Ì·¢²¼-ÔÚÊÀ½ç¸÷µØ½¨Á¢´Ó·þÎñÆ÷£¬Ê¹µÃ¸÷µØµÄϵͳ²»±ØÔ¶³Ì¶ÁÈ¡Êý¾Ý
±¸·Ý-Ò»ÖÖ±¸·Ý·½Ê½
Èç¹û¶Ôͬ²½ÒªÇó±È½Ï¸ß£¬²»ÄÜÈÝÈÌÔÝʱµÄ²»Ò»Ö£¬Ö»ÄÜʹÓÃCluster¡£ ......