´óÊý¾Ý¼¼Êõ
»MySQL 5.7 ÐÂÌØÐÔ ¹²ÏíÁÙʱ±í¿Õ¼ä¼°ÁÙʱ±í¸Ä½øMysql

tm

SQL

²âÊÔ

Hadoop

mysql
¡¾Ç°ÑÔ¡¿£º
ÔÚ MySQL 5.6 ÒýÓÃÁ˶ÀÁ¢ undo tablespace Ö®ºó£¬MySQL 5.7 ÔÚ temporary tablespace ÉÏ×öÁ˸Ľø¡£
ÒѾʵÏÖ½« temporary tablespace ´Ó ibdata£¨ÏµÍ³±í¿Õ¼äÎļþ£©ÖзÖÀë¡£
²¢ÇÒ¿ÉÒÔÖØÆôÖØÖôóС£¬±ÜÃâ³öÏÖÏñ ibdata ÄÑÒÔÊͷŵÄÎÊÌâ¡£
µ«ÏÂÃæËùÓеÄÌÖÂÛÖ»Õë¶Ô InnoDB£¬²¢ÇÒÖ¸¶¨ÁË innodb_file_per_table£¬ËùÓð汾Ϊ MySQL 5.7.x
ÐÂÌØÐÔ ¡¤ ¹²ÏíÁÙʱ±í¿Õ¼ä £º
¹²ÏíÁÙʱ±í¿Õ¼ä³öÏÖÓÚ MySQL 5.7.1£¬ÎªµÄÊǽ«ÁÙʱ±í¿Õ¼ä´Óϵͳ±í¿Õ¼ä (system tablespace) ÎļþÖжÀÁ¢³öÀ´¡£¸Ã¹²ÏíÁÙʱ±í¿Õ¼äÓÃÓÚ´æ´¢·ÇѹËõ InnoDB ÁÙʱ±í (non-compressed InnoDB temporary tables)¡¢¹ØÏµ¶ÔÏó (related objects)¡¢»Ø¹ö¶Î (rollback segment) µÈÊý¾Ý¡£¸ü¶àÐÅÏ¢¿ÉÒԲο¼¡¾MySQL 5.7 Reference Manual 8.4.4 Internal Temporary Table Use in MySQL¡¿
ÒòΪ´æ·ÅµÄÊý¾ÝÌØÊâÐÔ£¬²»»á²ÎÓë crash recovery£¬Òò´ËÎÞÐè¼Ç¼ redo log¡£
¸Ã¹²ÏíÁÙʱ±í¿Õ¼äĬÈÏ´óСΪ 12MB¡£ÔÚʵÀý¹Ø±ÕÖ®ºó£¬½«»á±»É¾³ý¡£ÔÚʵÀýÆô¶¯Ê±Ôò»á±»´´½¨¡£
ĬÈϵģ¬¸Ã¹²ÏíÁÙʱ±í¿Õ¼ä´æ·ÅÔÚ innodb_data_home_dir ÖÐµÄ ibtmp1 À¶ø innodb_data_home_dir ĬÈÏΪ datadir¡£
ËùÒÔÒ»°ã¸Ã ibtmp1 ´æ·ÅÔÚ datadir Ï£¬ÏÔÈ»£¬Æä·¾¶Óë¹²Ïí±í¿Õ¼äµÄ·¾¶Ò»Ñù£¬È¡¾öÓÚ innodb_data_home_dir¡£
ÐÂÔö²ÎÊý innodb_temp_data_file_path£¬Í¨¹ýÐÞ¸ÄÆäÖµ¿ÉÒÔ½«¸Ã¹²ÏíÁÙʱ±í¿Õ¼äµÄÎļþÃû£¬À©Õ¹´óС×öÐ޸ġ£
±ÈÈçÔÚÅäÖÃÎļþÖмÓÉÏ innodb_temp_data_file_path = temp_tablespace:64M:autoextend
ÄÇôÔÚÆô¶¯ÊµÀýÖ®ºó£¬»áÉú³ÉÒ»¸ö´óСΪ 64MB µÄ temp_tablespace Îļþ
-rw-r----- 1 root root 67108864 Jun 20 17:29 temp_tablespace
¸Ã²ÎÊýĬÈϳöÏÖÓÚ 5.7.1£¬¾²Ì¬£¬Ä¬ÈÏֵΪ ibtmp1:12M:autoextend¡£
ÐÂÌØÐÔ ¡¤ InnoDB ÁÙʱ±íͳ¼ÆÐÅÏ¢ÓÅ»¯
ÒòΪÁÙʱ±íÌØÐÔ£¬ÊÇÎÞ·¨ÔÚ SHOW TABLES; Óëͨ¹ý information_schema.TABLES ²éѯµ½ÆäÔªÊý¾ÝÐÅÏ¢µÄ¡£
Àϰ汾¿ÉÄÜÖ»ÄÜͨ¹ýһЩ±È½ÏÂé·³µÄ·½·¨À´²é¿´£º
±ÈÈç SHOW CREATE TABLE tmp_a\G
5.7 °æ±¾Ö®ºó£¬ÔÚ I_S ÀïÔö¼ÓÁËÒ»¸ö±íÀ´Í³¼Æ¸Ã±íµÄÔªÊý¾ÝÐÅÏ¢ INNODB_TEMP_TABLE_INFO¡£
¿ÉÒÔͨ¹ý I_S À´²é¿´¸Ã±íµÄ¶¨Ò壺

×ֶνéÉÜ£º
TABLE_ID£º±í id
NAME£º±íÃû£¬Õâ¸öÃû×Ö¶ÔÓ¦µÄ±í½á¹¹Îª $NAME.frm£¬Èô¸Ã±íΪѹËõÁÙʱ±í£¬¶ÔÓ¦µÄÊý¾ÝÎļþΪ $NAME.ibd£¬·´Ö®ÔòÎÞ¡£
N_COLS£ºÁеÄÊýÁ¿£¬1 ¸ö±»ÎÒÏÔʾ´´½¨µÄÁУ¬ÆäËû 3 ¸öΪ InnoDB µÄÒþ²ØÁÐ (DB_ROW_ID, DB_TRX_ID, and DB_ROLL_PTR)
SPACE£ºÁÙʱ±íµÄ±í¿Õ¼ä id£¬×ÜÊÇ·Ç 0£¬²¢ÇÒËæÊµÀýÖØÆô¶¯Ì¬±ä»¯£¬
PER_TABLE_TABLESPACE£ºÈç¹ûΪ TRUE£¬Ôò±íÃ÷¸ÃÁÙʱ±íÓÐ×Ô¼ºµÄÁÙʱ±í¿Õ¼ä£¨ÓÐ×Ô¼ºµÄ ibd Îļþ£©£¬Èç¹ûΪ FALSE£¬Ôò±íÃ÷¸ÃÁÙʱ±íÓù²Ïí±í¿Õ¼ä¡£
IS_COMPRESSED£ºÈç¹ûΪ TRUE£¬Ôò±íÃ÷¸Ã±í±»Ñ¹Ëõ£¬·´Ö®ÔòδѹËõ¡£
ÐÂÌØÐÔ ¡¤ innodb_tmpdir
³öÏÖÔÚ 5.7.11 ÒÔºóµÄ°æ±¾£¬ÓÃÓÚÔÚ×öijЩ Online DDL ʱ´æ·ÅÁÙʱÊý¾Ý¡£
innodb_tmpdir µÄÖµ¸²¸Ç tmpdir£¬´ËÌØÐÔÖ»Õë¶ÔÓÚ Online DDL ÉúЧ¡£
¹²ÏíÁÙʱ±í¿Õ¼äÓë tmpdir ¶Ô±È£º
ͨ¹ý CREATE TEMPORARY TABLE ... ´´½¨µÄ±í£¬¸Ã±í¶¨Òå»á·ÅÔÚ tmpdir Ï£¬Ä¬ÈÏΪ / tmp
tmpdir ²»ÊǸöвÎÊý£¬Ò»°ãÒ²²»ÐèÒªÖ¸¶¨£¬Ä¬ÈÏֵΪ / tmp£¬´Ë´¦»¹ÊÇÌá¼°²¢Óë¹²ÏíÁÙʱ±í¿Õ¼ä×öÒ»¸ö¶Ô±È¡£
tmpdir ²ÎÊýÓÃÓÚÖ¸¶¨ÁÙʱÎļþ (temporary files) ºÍÁÙʱ±í (temporary tables) µÄ´æ·ÅĿ¼¡£
¿ÉÒÔÉ趨Ϊһ¸ö¼¯ºÏ²¢×öÂÖѯµ÷¶È£¨ÓÃ: ·Ö¸î£©£¬Èç¹ûÒªÓ㬽¨ÒéÖ¸¶¨¶à¸ö´ÅÅÌĿ¼ÒÔÌá¸ßÐÔÄÜ¡£
´ËÍ⣬¶ÔÓÚÏÔʽ´´½¨µÄÁÙʱ±í£¨create temporary table£©£º
Óë¹²ÏíÁÙʱ±í¿Õ¼ä²»Í¬µÄÊÇ£¬tmpdir ´æ´¢µÄÊÇ compressed InnoDB temporary tables µÄÁÙʱ¶ÀÁ¢±í¿Õ¼ä¡£
ÒÔÏÂ×öÒ»¸ö²âÊÔ£¬Ñé֤һϣº
²ÎÊý¼ì²é£º

ÏÈ´´½¨Á½ÕÅÁÙʱ±í£¬ÒýÇæ¾ùΪĬÈ쵀 InnoDB£¬ÆäÖеÚÒ»ÕÅÖ¸¶¨ÐиñʽΪ COMRESSED£¬µÚ¶þÕŲ»Ñ¹Ëõ£º

¼ì²éÒ»ÏÂÁ½ÕÅÁÙʱ±íµÄ±í¶¨Ò壺

¸ù¾Ý TABLE_ID ºÍ IS_COMPRESSED ºÍ PER_TABLE_TABLESPACE ²ÎÊý
¿ÉµÃÖª£¬#sqlb48_3_0 Ϊ compress_table£¬#sqlb48_3_1 Ϊ uncompress_table
´´½¨ºÃÁËÖ®ºó£¬¼ì²é / tmp Ŀ¼£¬Ò²¾ÍÊÇ tmpdir¡£

¿ÉÒÔ·¢ÏÖ£¬Á½ÕÅÏÔʽ´´½¨µÄÁÙʱ±íµÄ¡¾±í¶¨ÒåÎļþ¡¿¶¼±»·Åµ½ÁË tmpdir Ï¡£
´ËÍ⣬#sqlb48_3_0 Ò²¾ÍÊÇ IS_COMPRESSED Ϊ TRUE µÄÄÇÕÅѹËõ±í£¬ibd ÎļþÒ²·ÅÔÚÁË tmpdir ÎļþÖС£
ÄÇôÀíÂÛÉÏ£¬#sqlb48_3_1 ÕâÕÅδѹËõµÄ±íµÄÊý¾Ý·Åµ½ÁË ibtmp1 ÖУ¬Ò²¾ÍÊǷŵ½Á˹²ÏíÁÙʱ±í¿Õ¼äÖС£
¼òµ¥Ñé֤һϣ¬Ñé֤˼·ΪÁ½Õűí²åÈë´óÁ¿Êý¾Ý¡£
²¢·Ö±ð¼ì²é ibtmp1 ÎļþºÍ #sqlb48_3_0.ibd ÎļþµÄ´óС±ä»¯£º
¶Ô compress_table ±í£º

¿ÉÒÔ·¢ÏÖ£¬Õë¶ÔѹËõµÄ InnoDB ÁÙʱ±í£¬ÆäÊý¾Ý·ÅÔÚ tmpdir Ï嵀 ibd ÎļþÖÐ
ÔÙ¼òµ¥²âÊÔһϷÇѹËõµÄ InnoDB ÁÙʱ±í£º

ÏÔÈ»£¬·ÇѹËõµÄ InnoDB ÁÙʱ±í½«Êý¾Ý´æ·ÅÔÚÁ˹²ÏíÁÙʱ±í¿Õ¼ä¡£
tmpdir ÏµĶ«Î÷ºÍ¹²ÏíÁÙʱ±í¿Õ¼ä×î´óµÄ¹²Í¬µãÒÔ¼°ÌØÐÔ¾ÍÊÇ£¬ÊµÀý¹Ø±ÕÖ®ºó£¬½«»á±»É¾³ý¡£
slave_load_tmpdir
¸Ã²ÎÊýÒ²²»ÊÇ 5.7 µÄÐÂ»ï¼Æ£¬Ä¬ÈÏֵȡ¾öÓÚ tmpdir µÄ²ÎÊý¡£
ÓÃÓÚ´æ·Å slave ÉϲúÉúµÄÌØÊâµÄÁÙʱÎļþ£º
ÔÚ master ÉϳöÏÖ LOAD DATA INFILE ... ʱ£¬±»¼Ç¼µ½ binlog ²¢·¢Ë͸ø slave£¬ÔÚ SQL thread ´Ó relaylog ÌáÈ¡Êý¾Ýʱ£¬Ð´ÈëÖ¸¶¨µÄĿ¼Ï£¬È»ºóÖ´ÐÐ LOAD DATA LOCAL INFILE ...£¬½áÊøÖ®ºóÔò»áɾµôÕâ¸öÎļþ¡£
Ôö¼ÓÕâ¸ö²ÎÊýÊÇΪÁ˸´ÖƵĿɿ¿ÐÔºÍÊý¾ÝÒ»ÖÂÐÔ¡£
Èç¹ûĬÈÏ·ÅÔÚ tmpdir Ï£¬Èç¹û´ËʱÔâÓöÖØÆô£¬Îļþ¶ªÊ§£¬Ôò»áµ¼Ö¸´ÖÆÊ§°Ü¡£
Èç¹û master ÓÐʹÓÃÕâÑùµÄÓï¾ä£¬½¨Ò齫¸ÃĿ¼ָ¶¨ÔÚ»ùÓÚ¿É¿¿´æ´¢É豸ÉÏ¡£
¿ÉÄÜÓöµ½µÄÎÊÌ⣺
MySQL 5.7.6 ÒԺ󣬿ªÊ¼Ö§³Ö 32KB ºÍ 64KB µÄ page size£¬Èô½« page size ÐÞ¸ÄΪ 32 »òÕß 64KB£¬Ôò²»ÄÜʹÓà ROW_FORMAT=COMPRESSED£¬¸ÃÐиñʽÄÜÖ§³ÖµÄ×î´ó page size Ϊ 16KB¡£
ÈôÒª±£Ö¤ ROW_FORMAT=COMPRESSED ÉúЧ£¬innodb_file_format ±ØÐëÉèÖÃΪ Barracuda¡£
»¶Ó¼ÓÈë±¾Õ¾¹«¿ªÐËȤȺ
Èí¼þ¿ª·¢¼¼ÊõȺ
ÐËȤ·¶Î§°üÀ¨£ºJava£¬C/C++£¬python£php£¬Ruby£¬shellµÈ¸÷ÖÖÓïÑÔ¿ª·¢¾Ñé½»Á÷£¬¸÷ÖÖ¿ò¼ÜʹÓã¬Íâ°üÏîÄ¿»ú»á£¬Ñ§Ï°¡¢Åàѵ¡¢Ìø²ÛµÈ½»Á÷
QQȺ£º204132433
HadoopÔ´´úÂëÑо¿Èº
ÐËȤ·¶Î§°üÀ¨£ºHadoopÔ´´úÂë½â¶Á£¬¸Ä½ø£¬ÓÅ»¯£¬·Ö²¼Ê½ÏµÍ³³¡¾°¶¨ÖÆ£¬ÓëHadoopÓйصĸ÷ÖÖ¿ªÔ´ÏîÄ¿£¬×ÜÖ®¾ÍÊÇÍæ×ªHadoop
QQȺ£º204050420
±¾ÎıêÌ⣺MySQL 5.7 ÐÂÌØÐÔ ¹²ÏíÁÙʱ±í¿Õ¼ä¼°ÁÙʱ±í¸Ä½øMysql
±¾Õ¾Á´½Ó£ºhttp://www.codesec.net/view/557664.html
·ÖÏíÇëµã»÷£º
1.·²CodeSecTeam×ªÔØµÄÎÄÕÂ,¾ù³ö×ÔÆäËüýÌå»òÆäËû¹ÙÍø½éÉÜ,Ä¿µÄÔÚÓÚ´«µÝ¸ü¶àµÄÐÅÏ¢,²¢²»´ú±í±¾Õ¾ÔÞͬÆä¹ÛµãºÍÆäÕæÊµÐÔ¸ºÔð£»
2.×ªÔØµÄÎÄÕ½ö´ú±íÔ´´×÷Õß¹Ûµã,Óë±¾Õ¾Î޹ء£ÆäÔ´´ÐÔÒÔ¼°ÎÄÖгÂÊöÎÄ×ÖºÍÄÚÈÝδ¾±¾Õ¾Ö¤Êµ,±¾Õ¾¶Ô¸ÃÎÄÒÔ¼°ÆäÖÐÈ«²¿»òÕß²¿·ÖÄÚÈÝ¡¢ÎÄ×ÖµÄÕæÊµÐÔ¡¢ÍêÕûÐÔ¡¢¼°Ê±ÐÔ£¬²»×÷³öÈκα£Ö¤»ò³ÐÈô£»
3.Èç±¾Õ¾×ªÔØ¸åÉæ¼°°æÈ¨µÈÎÊÌâ,Çë×÷Õß¼°Ê±ÁªÏµ±¾Õ¾,ÎÒÃǻἰʱ´¦Àí¡£