InnodbºÍMySIAMÔÚ´æ´¢·½Ê½ÉÏÓÐÊ²Ã´Çø±ð£¿
¸üÐÂʱ¼ä:2018Äê11ÔÂ16ÈÕ15ʱ07·Ö À´Ô´:ÀÖÓã²¥¿Í ä¯ÀÀ´ÎÊý:
1.MySQL5.5.8Ö®ºó°æ±¾Ä¬ÈÏInnodb´æ´¢ÒýÇæ
2.InnodbʹÓñí¿Õ¼ä½øÐÐ Êý¾Ý´æ´¢
a.InnodbÊÇÖ§³ÖÊÂÎïµÄ´æ´¢ÒýÇæ£¬Ò²¾ÍÊÇ˵֧³ÖACIDÌØÐԵģ¬Êʺϴ¦Àí¸ü¶àµÄСÊÂÎСÊÂÎïÒ²¾ÍÊÇÕý³£µÄÌá½»£¬ºÜÉٻعö;
b. InnodbºÍMySIAMÔÚ´æ´¢·½Ê½ÉÏÒ²ÓкܴóµÄÇø±ð£¬InnodbÓÐ×Ô¼ºµÄ±í¿Õ¼äµÄ¸ÅÄ±íÖеÄÊý¾ÝÊÇ´æ´¢ÔÚ±í¿Õ¼äÖ®Öе쬾ßÌå´æ´¢ÔÚʲôÑùµÄ±í¿Õ¼äÖÐÄØ£¿ÊÇÓÉinnodb_file_per_tableÕâ¸ö²ÎÊý¾ö¶¨µÄ£¬Èç¹ûÕâ¸ö²ÎÊýΪON:¶ÀÁ¢±í¿Õ¼ä£¬´æ´¢µÄ±íÃûΪ(±íÃû.ibd),Èç¹û²ÎÊýΪOFF:ϵͳ±í¿Õ¼ä(ϵͳµÄ¹²Ïí±í¿Õ¼ä),´æ´¢µÄ±íÃûΪ(ibdataX(XΪÊý×Ö)))
ÃüÁshow variables like 'innodb_file_per_table';
²é¿´mysqlÊý¾Ý¿âµÄ´æ·ÅλÖÃ: show global variables like "%datadir%";
½ÓÏÂÀ´ÎÒÃÇ´´½¨Ò»¸ö±íÀ´¿´Ò»ÏÂ
create table myinnodb(id int,c1 varchar(100)) engine='innodb';
¿´Ò»ÏÂÎļþϵͳÊÇÈçºÎ´æ´¢µÄ£¬½øÈëµ½Êý¾Ý¿â´æ·ÅµÄλÖã¬ls -lh myinnodb*
¿ÉÒÔ¿´µ½ÓÐmyinnodb.frmºÍmyinnodb.ibdÁ½¸öÎļþ£¬frmÎļþʱ¼Ç¼±í½á¹¹µÄ£¬ibd¾ÍÊÇinnodb±íʵ¼Ê´æ´¢µÄλÖÃ
½Ó×ŰÑinnodb_file_per_table²ÎÊýÉèÖÃΪoff,ÃüÁîΪset global innodb_file_per_table=off;
show variables like 'innodb_file_per_table'; ÓÃÕâ¸öÃüÁî¼ì²éÊÇ·ñ¹Ø±ÕÁË
ÔÙ´´½¨Ò»¸ö±í£ºcreate table myinnodb_g(id int,c1 varchar(100)) engine='innodb';
²é¿´´æ´¢µÄλÖ㬿ÉÒÔ¿´µ½Ö»ÓÐÒ»¸ömyinnodb_g.frmµÄÎļþ£¬²»´æÔÚibdÎļþ£¬Ò²¾ÍÊÇ˵ËüµÄÊý¾Ý´æ´¢ÔÚϵͳ¹²Ïí±íµÄ¿Õ¼ä ´æ´¢ÔÚibdata1ÖÐ
3.ϵͳ±í¿Õ¼äºÍ¶ÀÁ¢±í¿Õ¼äÒªÈçºÎÑ¡Ôñ£¿
Ê×ÏÈ¿´Ò»ÏÂϵͳÎļþ¶Ô±í¿Õ¼äµÄ¹ÜÀí·½Ê½
ÔÚmysql5.6֮ǰµÄInnodbµÄinnodb_file_per_table²ÎÊýĬÈÏÖµÉèÖÃÊÇoff,Ò²¾ÍÊÇ˵ÔÚmysql5.5°æ±¾µÄʱºò£¬ËùʹÓõÄinnodb±íµÄÊý¾Ý¶¼´æ´¢ÔÚϵͳ¹²Ïí±í¿Õ¼äµÄ£¬Èç¹ûÓÐÈ˾õµÃʹÓÃÕâ¸öÊÇ×îºÏÊʵϰĨ£¬ÄÇôËû¿ÉÄÜÓöµ½ÏÂÃæµÄÇé¿ö£¬ÔÚϵͳ·±Ã¦ÖУ¬Ëû»á·¢ÏÖϵͳ±í¿Õ¼äÔÚ²»¶ÏµÄÔö³¤£¬±¾À´ÄØ£¬Õâ¸öҲûÓÐʲôÎÊÌ⣬ֻҪûÓг¬¹ý´ÅÅÌÄãµÄÏÞÖÆÊÇ¿ÉÒÔ½ÓÊܵ쬵«ÊÇÒ»µ©ÎÒÃǵĴÅÅ̿ռä³öÏÖ²»×㣬ÎÒÃÇΪÁËÊÍ·Å´ÅÅ̿ռ䣬²»µÃ²»ÐèÒªÔÚϵͳÖÐɾ³ý´óÁ¿µÄ¡¢ÎÞЧµÄÊý¾Ý»òÕßÊÇһЩ³¤ÆÚ²»»áʹÓõÄÊý¾Ý£¬±ÈÈçÏñÈÕÖ¾ÀàµÄÊý¾Ý£¬ÎÒÃÇÔÚɾ³ýÖ®ºó£¬ÏµÍ³±í¿Õ¼ä²¢²»»á¼õС£¬ÁíÍâÎÒÃÇÔÚÕâÖÖÇé¿öÏÂÏëͨ¹ý¸´ÖÆÈÕÖ¾ÎļþµÄ·½Ê½¶ÔÊý¾Ý¿â½øÐб¸·Ý£¬ÓÉÓÚËäȻɾ³ýÁËÊý¾Ý£¬±í¿Õ¼äµÄ´óСҲ²»»á¸Ä±ä£¬Õâ¾ÍÒâζ×ÅÎÒÃÇÔÚÿ´Îɾ³ýʱ¶¼ÒªÀ˷ѺܴóµÄ¿Õ¼ä£¬²»ÒªÒÔΪÎÒô²»»áÓöµ½ÕâÖÖÎÊÌ⣬ʵ¼ÊÉÏÎÒÃÇĿǰÊÇʹÓõÄinnodbµÄÈȱ¸·½Ê½¾ÍÊÇÕâÑù´¦ÀíµÄ£¬ÒòΪÕâʱºòÎÒÃÇÓöµ½ÁËÓõ½ÁËʹÓÃϵͳ±í¿Õ¼ä½øÐÐÊý¾ÝµÄ´æ´¢µÄÎÊÌ⣻¶øÏëÒªÊÕËõϵͳ±í¿Õ¼äµÄΨһ·½Ê½£¬¾ÍÊǰÑÕû¸öÊý¾Ý¿âËùÓÐInnodb±íµ¼³öºó£¬É¾³ýInnodb±íÏà¹ØµÄÎļþºó£¬ÖØÆômysql·þÎñÆ÷£¬½øÐбí¿Õ¼äµÄÖØ½¨£¬È»ºóÔÙµ¼ÈëÊý¾Ý£¬Õâ¸ö¹ý³ÌÆäʵÊǺܸ´Ôӵ쬲¢ÇÒÊ®·ÖºÄʱ£¬ÔÚÒµÎñ·±Ã¦µÄÉú³É»·¾³ÖÐÄØ£¬ÏÔÈ»ÊDz»¿ÉÄÜ×öµ½µÄ£¬Ê¹ÓÃϵͳ±í¿Õ¼ä´æ´¢ÎļþºÜÏÔÈ»µÄÎÊÌâ¾ÍÊÇÎÞ·¨¼òµ¥µÄÊÕËõÎļþ´óС£¬Ôì³É´óÁ¿µÄ¿Î¼þÀË·Ñ£¬»á²úÉú´óÁ¿µÄ´ÅÅÌË鯬£¬´Ó¶ø½µµÍϵͳµÄÐÔÄÜ Èç¹ûÎÒÃÇʹÓöÀÁ¢±í¿Õ¼äµÄ»°ÉÏÃæµÄÎÊÌâ¾ÍºÜºÃ½â¾öÁË£¬ÎÒÃÇÈç¹û¶ÔÒ»¸ö´ó±íµÄÊý¾Ý½øÐÐÇåÀíÖ®ºó£¬¿ÉÒԺܷ½±ãµÄÖ»¶ÔÕâÒ»¸ö±í½øÐÐoptimize table²Ù×÷£¬ÕâÑùµÄ»°Ò²»á¶ÔÕâ¸ö±í½øÐÐÖØ½¨£¬µ«ÊǶԱȶÔÕû¸öϵͳÎļþ½øÐÐÖØ½¨µÄ»°Òª¿ìµÄ¶à£¬¶øÇÒ²»ÐèÒªÖØÆôÊý¾Ý¿â·þÎñÆ÷£¬ÉõÖÁ²»»áÓ°ÏìÕý³£·ÃÎÊ£¬´ÓÕâµãÀ´¿´£¬ÏÔȻʹÓöÀÁ¢±í¿Õ¼ä±ÈʹÓÃϵͳ±í¿Õ¼ä·½±ã ÔÙÀ´¿´Ò»ÏÂʹÓÃϵͳ±í¿Õ¼äºÍ¶ÀÁ¢±í¿Õ¼ä¶ÔIO²úÉúµÄÓ°Ïì ¶ÔÓÚϵͳ±í¿Õ¼äÀ´ËµÄØ£¬ÓÉÓÚÖ»ÓÐÒ»¸öÎļþ£¬Èç¹ûͬʱ¶ÔÒ»¸öÊý¾Ý±í¿Õ¼ä½øÐÐË¢ÐÂʱ£¬Êµ¼ÊÉÏÔÚÎļþϵͳ²ãÃæÉÏÀ´Ëµ£¬Êǰ´ÕÕ˳Ðò½øÐе쬻á²úÉúIOÆ¿¾± ¶ÔÓÚ¶ÀÁ¢±í¿Õ¼äÀ´ËµÄØ£¬ÓÉÓÚÿһ¸ö±í¶¼ÓÐ×Ô¼ºµÄ¶ÀÁ¢±í¿Õ¼äÎļþ£¬×Ô¼ºÔÚÊý¾ÝдÈëʱ£¬¿ÉÒÔÀûÓöà¸öÎļþÔö¼Ó¶ÔIO´¦ÀíµÄÐÔÄÜ£¬ËùÒÔ¶ÔÆµ·±Ð´ÈëÀ´Ëµ²»Ì«ÊʺÏϵͳ±í¿Õ¼äͳһ´æ·ÅÊý¾Ý£¬¶øÊÇҪʹÓöÀÁ¢±í¿Õ¼äµÄ·½Ê½ ÎÒÇ¿ÁÒ½¨Òé´óÁ¿Ê¹ÓÃInnodbÒýÇæÊ±ºò£¬Ê¹ÓöÀÁ¢±í¿Õ¼äÀ´½øÐйÜÀí ÔÚmysql5.6°æ±¾Ö®ºó£¬¶ÀÁ¢±í¿Õ¼äÒ²³ÉΪÁËĬÈϵÄÅäÖÃ
Èç¹ûÊÇ5.6֮ǰµÄ°æ±¾Ïëת»»Î»¶ÀÁ¢±í¿Õ¼äÐèÒª½øÐÐÈçϵIJ½Öè:
1.ʹÓÃmysqldumpµ¼³öËùÓÐÊý¾Ý¿â±íÊý¾Ý (×¢Òâ:Êý¾Ý¿âʹÓõÄÊÇ´æ´¢¹ý³Ì¡¢´¥·¢Æ÷¡¢¼Æ»®Ê¼þµÈÒ»¶¨Òª¼ÇµÃÒ»Æðµ¼³ö)
2.Í£Ö¹Mysql·þÎñ£¬Ð޸IJÎÊý(ÔÚmysqlµÄÅäÖÃÎļþÖмÓÈëinnodb_file_per_table=on)£¬²¢É¾³ýÏà¹ØµÄInnodbÏà¹ØÎļþ
3.ÖØÆôMysql·þÎñ£¬Öؽ¨Innodbϵͳ±í¿Õ¼ä
4.ÖØÐµ¼È뱸·ÝµÄÊý¾Ý
ÎÒÃÇϵͳ±í¿Õ¼äµÄÊý¾ÝÇ¨ÒÆµ½¶ÀÁ¢±í¿Õ¼äºó£¬ÏÖÔÚµÄϵͳ±í¿Õ¼ä»¹»áÓÐʲôÄÚÈÝÄØ£¿
ËäÈ»ÎÒÃÇÒѾ°Ñ±íµÄÊý¾Ý´Óϵͳ±í¿Õ¼äÖÐÇ¨ÒÆµ½Á˶ÀÁ¢±í¿Õ¼ä£¬µ«ÊÇÔÚϵͳ±í¿Õ¼äÖл¹ÊÇÓÐÒ»²¿·ÖºÜÖØÒªµÄ¶«Î÷Òª´æ´¢µÄ
ÆäÖÐÖ®¾ÍÊÇInnodbÊý¾Ý×ֵ䣬Êý¾Ý×ÖµäÊÇÊý¾Ý¿â½á¹¹¶ÔÏóµÄÔªÊý¾ÝµÄÐÅÏ¢£¬Ëü´æ·ÅһЩÓëÊý¾Ý¿â¶ÔÏóÏà¹ØµÄһЩÐÅÏ¢£¬Èç±í¡¢ÁС¢Ë÷Òý¡¢Íâ¼üµÈ£¬Ï¸ÐĵÄͬѧÒѾ·¢ÏÖÁË£¬MysqlÊý¾Ý¿âÊÇʹÓÃfrmÎļþÀ´´æ´¢±í½á¹¹µÄ¶¨ÒåµÄ£¬ÄÇôfrmÎļþÓëϵͳ±í¿Õ¼äÖдæ·ÅµÄÊý¾Ý×ÖµäÓÐÊ²Ã´Çø±ðÄØ£¿Ê×ÏÈfrmÎļþÊÇmysqlÊý¾Ý¿â·þÎñÆ÷²ã²úÉúµÄÎļþ£¬¿ÉÒÔÀí½âΪmysqlÊý¾Ý¿â·þÎñÆ÷²ãµÄÊý¾Ý×ֵ䣬¶ÔÓÚmysqlËùÓеĴ洢ÒýÇæÊÇÒ»ÑùµÄ£»ÔÚmysql·þÎñÆ÷²ã±£´æµÄ¶àÏß³ÌÊÇÓë´æ´¢ÒýÇæÎ޹صÄInnodbÄÚ´æ²úÉúµÄÊý¾Ý×ֵ䣬ÊÇinnodbÄÚ²¿²úÉúµÄ£¬²¢¿ÉÒÔ±£Ö¤Ò»Ð©ÊÂÎïµÄ°²È«ÐÔ£¬ÁíÍ⣬innodb´æ´¢ÒýÇæÃ»ÓÐʹÓÃmysqlÊý¾Ý¿âÉÏ´«µÄÀàÐÍ£¬¶øÊÇ×Ô¼º·â×°ÁËһЩ×Ô¶¨Ò壬Êý¾Ý×ֵ䶼ÊÇ´æ´¢ÁËһЩinnodbÏà¹ØµÄһЩÄÚÈÝ£¬frmÎļþÖ»ÊÇÒ»¸ö¼òµ¥µÄ¶þ½øÖÆÎļþ£¬¶øinnodbÊý¾Ý×ÖµäÊÇͨ¹ý¼ÆÊýÀ´½øÐÐÊý¾Ý¹ÜÀíµÄ£» »¹ÓÐUndo »Ø¹ö¶ÎºÍinnodbÁÙʱ±í£¬ÕâÁ½ÖÖÊý¾ÝÄØ£¬ÔÚmysql5.7µÄʱºòÄØ£¬¶¼ÊÇ´Óϵͳ±í¿Õ¼äÖÐÒÆ³öÁË£¬µ«ÊÇ»¹ÊÇÓкܶàµÄĬÈÏ´æ´¢ÔÚϵͳ±í¿Õ¼äÖУ¬¶ÔÓÚUndo ¶ÎÔÚmysql5.6µÄʱºò¾ÍÖ§³ÖÁË
4.Innodb´æ´¢ÒýÇæµÄÌØÐÔ
1.InnodbÊÇÒ»ÖÖÊÂÎïÐÔ´æ´¢ÒýÇæ
a.Íêȫ֧³ÖÊÂÎïµÄACIDÌØÐÔ£¨Ô×ÓÐÔ¡¢Ò»ÖÂÐÔ¡¢¸ôÀëÐԺͳ־ÃÐÔ£©
InnodbÊÇÈçºÎʵÏÖACIDµÄÌØÐÔ£¿
Äܹ»ÊµÏÖÔ×ÓÐÔ¡¢Ò»ÖÂÐԺͳ־ÃÐÔ£¬InnodbʹÓÃÁËÁ½¸öÌØÊâµÄÈÕÖ¾ÀàÐÍ£¬Redo Log(ʵÏÖÊÂÎïµÄ³Ö¾ÃÐÔ,ÓÉÁ½²¿·Ö×é³É£¬ÖØ×öÈÕÖ¾»º³åÇø---->innodb_log_buffer_size)ºÍUndo Log()
b.InnodbÖ§³ÖµÄÊÇÐм¶Ëø
Ðм¶ËøµÄÌØµã:
ÔÚ½øÐÐд²Ù×÷ʱ£¬ÐèÒªËø¶¨µÄ×ÊÔ´¸üÉÙ£¬Ö§³ÖµÄ²¢·¢¾Í»á¸ü¶à
innodbÐм¶ËøÊÇÓÉ´æ´¢ÒýÇæ²ãʵÏÖµÄ
ʲôÊÇËø£¬ËøµÄ×÷ÓÃÊÇÊ²Ã´ÄØ£¿
´ð:ËøÊÇÊý¾Ý¿âÏµÍ³Çø±ðÓÚÎļþϵͳµÄÖØÒªÌØÐÔ£¬ËøµÄÖ÷Òª×÷ÓÃÊǹÜÀí¹²Ïí×ÊÔ´µÄ²¢·¢·ÃÎÊ£¬²¢·¢·ÃÎÊÊÇÒ»¸öºÜÈÃÈËÍ·ÌÛµÄÎÊÌ⣬¶ÔÓÚÈκεĴ®Ðл·¾³Ï¹¤×÷Á¼ºÃµÄÒ»¸öϵͳ£¬Ò»µ©³öÏÖ²¢·¢¾Í»á³öÏÖ¸÷ÖÖ¸÷ÑùµÄÎÊÌâ £»ËøµÄÁíÒ»¸ö×÷ÓþÍÊÇʵÏÖÊÂÎïµÄ¸ôÀëÐÔ
ËøµÄÀàÐÍ:
¹²ÏíËø(Ò²³Æ¶ÁËø):Ï໥²»»á±»¶ÂÈûµÄ£¬¶à¸öÏ߳̿ÉÒÔÔÚͬһʱ¼ä¶Áȡͬһ×ÊÔ´£¬¶ø²»Ï໥¸ÉÈÅ
¶ÀÕ¼Ëø(Ò²³ÆÎªÐ´Ëø): ÅÅËûµÄ£¬Ò»¸öÐ´Ëø¿ÉÒÔ¶ÂÈûÆäËûµÄÐ´ËøºÍ¶ÁËø£¬ÕâÊdzöÓÚÊý¾ÝÍê³ÉÐԵĿ¼ÂÇ£¬Ö»ÓÐÕâÑùÔÚ¸ÄÌîµÄʱ¼äÀֻÓÐÒ»¸öÏß³ÌÖ´ÐÐϷдÈ룬²¢·ÀÖ¹ÆäËûÓû§¶ÁÈ¡ÕýÔÚдÈëµÄͬһ×ÊÔ´£¬Ò²¾ÍÊÇʵÏÖÊÂÎïµÄ¸ôÀëÐÔ
| Item | Ð´Ëø | ¶ÁËø |
| :-------- | --------: | :--: |
| Ð´Ëø | ²»¼æÈÝ | ²»¼æÈÝ |
| ¶ÁËø | ²»¼æÈÝ | ¼æÈÝ |
Ð´ËøºÍÆäËûµÄËø¶¼ÊDz»¼æÈݵ쬶ÁËøºÍ¶ÁËøÖ®¼äÊǼæÈݵÄ
ÐèҪעÒâµÄÊÇ:¶ÔÓÚInnodbÀ´Ëµ£¬¶ÁËøºÍÐ´Ëø¶¼ÊÇÐÐËø£¬ËùνµÄ¼æÈÝÐÔ¾ÍÊǶÔͬһÐеļǼ¼æÈÝÐÔµÄÇé¿ö
ʲôÊÇ×èÈû£¿
×èÈûÊÇÒòΪ²»Í¬ËøÖ®¼äµÄ¼æÈÝÐԵĹØÏµ£¬ÔÚÓÐЩʱ¿Ì£¬Ò»¸öÊÂÎïÖеÄËøÐèÒªµÈ´ýÁíÒ»¸öÊÂÎïÖÐËøµÄÊÍ·ÅËüËùÕ¼ÓõÄ×ÊÔ´£¬ÐγɵÄ×èÈû£¬×èÈûÊÇΪÁËÈ·±£ÊÂÎï¿ÉÒÔ²¢·¢£¬ÇÒ¿ÉÒÔÕý³£µÄÔËÐУ¬µ±ÏµÍ³ÖгöÏÖÁË´óÁ¿µÄ×èÈû£¬ÍùÍùϵͳÖоʹæÔÚ×ÅÎÊÌ⣬Ҳ¿ÉÄÜÊÇÒ»¸ö±»Æµ·±¸üеıíÉϳöÏÖÁËÂý²éѯ
2.Innodb״̬¼ì²é
show engine innodb status °üº¬ÁËһЩƽ¾ùÖµµÄͳ¼ÆÐÅÏ¢£¬Æ½¾ùÖµÊÇÖ¸ÉÏ´ÎÊä³ö½á¹ûÉú³ÉµÄͳ¼ÆÊý£»Á½´ÎÊäÈëµÄ¼ä¸ôʱ¼ä²»ÄÜÉÙÓÚ30Ãë
×÷ÕߣºÀÖÓã²¥¿ÍÈ˹¤ÖÇÄÜ+PythonÅàѵѧԺ
Ê×·¢£ºhttp://python.itcast.cn/