mysql ENGINE=InnoDB
InnoDB ¸ø MySQL ÌṩÁ˾ßÓÐÊÂÎñ(commit)¡¢»Ø¹ö(rollback)ºÍ±ÀÀ£ÐÞ¸´ÄÜÁ¦(crash recovery capabilities)¡¢¶à°æ±¾²¢·¢¿ØÖÆ(multi-versioned concurrency control)µÄÊÂÎñ°²È«(transaction-safe (ACID compliant))ÐÍ±í¡£InnoDB ÌṩÁËÐм¶Ëø(locking on row level)£¬ÌṩÓë Oracle ÀàËÆµÄ²»¼ÓËø¶ÁÈ¡(non-locking read in SELECTs)¡£InnoDBËø¶¨ÔÚÐм¶²¢ÇÒÒ²ÔÚSELECTÓï¾äÌṩһ¸öOracle·ç¸ñÒ»ÖµķÇËø¶¨¶Á¡£ÕâÐ©ÌØÉ«Ôö¼ÓÁ˶àÓû§²¿ÊðºÍÐÔÄÜ¡£Ã»ÓÐÔÚInnoDBÖÐÀ©´óËø¶¨µÄÐèÒª£¬ÒòΪÔÚInnoDBÖÐÐм¶Ëø¶¨ÊʺϷdz£Ð¡µÄ¿Õ¼ä¡£InnoDBÒ²Ö§³ÖFOREIGN KEYÇ¿ÖÆ¡£ÔÚSQL²éѯÖУ¬Äã¿ÉÒÔ×ÔÓɵؽ«InnoDBÀàÐ͵ıíÓëÆäËüMySQLµÄ±íµÄÀàÐÍ»ìºÏÆðÀ´£¬ÉõÖÁÔÚͬһ¸ö²éѯÖÐÒ²¿ÉÒÔ»ìºÏ¡£ÕâÐ©ÌØÐÔ¾ùÌá¸ßÁ˶àÓû§²¢·¢²Ù×÷µÄÐÔÄܱíÏÖ¡£ÔÚInnoDB±íÖв»ÐèÒªÀ©´óËø¶¨(lock escalation)£¬ÒòΪ InnoDB µÄÐм¶Ëø¶¨(row level locks)ÊÊÒ˷dz£Ð¡µÄ¿Õ¼ä¡£InnoDB ÊÇ MySQL ÉϵÚÒ»¸öÌṩÍâ¼üÔ¼Êø(FOREIGN KEY constraints)µÄ±íÒýÇæ¡£
¡¡¡¡InnoDBÊÇΪ´¦Àí¾Þ´óÊý¾ÝÁ¿Ê±µÄ×î´óÐÔÄÜÉè¼Æ¡£ËüµÄCPUЧÂÊ¿ÉÄÜÊÇÈÎºÎÆäËü»ùÓÚ´ÅÅ̵ĹØÏµÊý¾Ý¿âÒýÇæËù²»ÄÜÆ¥µÐµÄ¡£
¡¡¡¡InnoDB´æ´¢ÒýÇæ±»ÍêÈ«ÓëMySQL·þÎñÆ÷ÕûºÏ£¬InnoDB´æ´¢ÒýÇæÎªÔÚÖ÷ÄÚ´æÖлº´æÊý¾ÝºÍË÷Òý¶øÎ¬³ÖËü×Ô¼ºµÄ»º³å³Ø¡£ InnoDB´æ´¢ËüµÄ±í£¦Ë÷ÒýÔÚÒ»¸ö±í¿Õ¼äÖУ¬±í¿Õ¼ä¿ÉÒÔ°üº¬Êý¸öÎļþ£¨»òÔʼ´ÅÅÌ·ÖÇø£©¡£ÕâÓëMyISAM±í²»Í¬£¬±ÈÈçÔÚMyISAM±íÖÐÿ¸ö±í±»´æÔÚ·ÖÀëµÄÎļþÖС£InnoDB ±í¿ÉÒÔÊÇÈκγߴ磬¼´Ê¹ÔÚÎļþ³ß´ç±»ÏÞÖÆÎª2GBµÄ²Ù×÷ϵͳÉÏ¡£
¡¡¡¡InnoDBĬÈϵر»°üº¬ÔÚMySQL¶þ½øÖÆ·Ö·¢ÖС£Windows Essentials installerʹInnoDB³ÉΪWindowsÉÏMySQLµÄĬÈÏ±í¡£
¡¡¡¡InnoDB±»ÓÃÀ´ÔÚÖÚ¶àÐèÒª¸ßÐÔÄܵĴóÐÍÊý¾Ý¿âÕ¾µãÉϲúÉú¡£ÖøÃûµÄInternetÐÂÎÅÕ¾µãSlashdot.orgÔËÐÐÔÚ InnoDBÉÏ¡£Mytrix, Inc.ÔÚInnoDBÉÏ´æ´¢³¬¹ý1TBµÄÊý¾Ý£¬»¹ÓÐһЩÆäËüÕ¾µãÔÚInnoDBÉÏ´¦ÀíÆ½¾ùÿÃë800´Î²åÈë/¸üеĸººÉ¡£
¡¡¡¡ÔÚ¼¼ÊõÉÏ£¬InnoDB ÊÇÒ»Ì×·ÅÔÚ MySQL ºǫ́µÄÍêÕûÊý¾Ý¿âϵͳ£¬InnoDB ÔÚÖ÷ÄÚ´æÖн¨Á¢ÆäרÓõĻº³å³ØÓÃÓÚ¸ßËÙ»º³åÊý¾ÝºÍË÷Òý¡£MySQLInnoDB °ÑÊý¾ÝºÍË÷Òý´æ·ÅÔÚ±í¿Õ¼äÀ¿ÉÄܰüº¬¶à¸öÎļþ£¬ÕâÓëÆäËüµÄ²»Ò»Ñù£¬¾ÙÀýÀ´Ëµ£¬ÔÚ MyISAM ÖУ¬±í±»´æ·ÅÔÚµ¥¶ÀµÄÎļþÖС£InnoDB ±íµÄ´óСֻÊÜÏÞÓÚ²Ù×÷ϵͳµÄÎļþ´óС£¬¿ÉÒ²¿ÉÒÔÿ¸ö±íʹÓø÷×Ô¶ÀÁ¢µÄ±í¿Õ¼ä£¬Ö»ÐèÒªÆôÓÃÑ¡Ïî innodb_file_per_table¡£
¡¡¡¡ÔÚ http://www.innodb.com/ ÉÏ¿ÉÒÔÕÒµ½ InnoDB ×îеÄÐÅÏ¢¡£InnoDB ÊÖ²áµÄ
Ïà¹ØÎĵµ£º
ERROR 1005 (HY000): Can't create table ' ****.frm' (errno: 150)
ÎÒÊÇ´ÓÒÔϼ¸¸ö·½Ãæ½â¾öÁË´ËÎÊÌ⣺
1¡¢È·±£²ÎÕյıíºÍ×Ö¶ÎÊÇ´æÔڵģ»
2¡¢×é³ÉÍâ¼üµÄ×Ö¶ÎÒªÇó±»Ë÷Òý(Ö÷ÒªÊÇÍâ¼üÄǸö×Ö¶ÎÒªÇóÔÚÆäËû±íÖÐÊÇÖ÷¼ü)£»
3¡¢Íâ¼ü¹ØÁªµÄÁ½±í»ò¶à±íÒªÇó¶¼ÊÇINNODBÀàÐÍµÄ±í£»
4¡¢×Ö¶ÎÀàÐÍ£¨ËµÃ÷£©ÒªÒ»Ñù`itemId` varchar( ......
select * for updateËø±íµÄÎÊÌâ
ÓÉÓÚInnoDBÔ¤ÉèÊÇRow-Level Lock£¬ËùÒÔÖ»ÓС¸Ã÷È·¡¹µÄÖ¸¶¨Ö÷¼ü£¬MySQL²Å»áÖ´ÐÐRow lock (Ö»Ëø×¡±»Ñ¡È¡µÄ×ÊÁÏÀý) £¬·ñÔòMySQL½«»áÖ´ÐÐTable Lock (½«Õû¸ö×ÊÁÏ±íµ¥¸øËø×¡)¡£
¾Ù¸öÀý×Ó:
¼ÙÉèÓиö±íµ¥products £¬ÀïÃæÓÐid¸úname¶þ¸öÀ¸Î»£¬idÊÇÖ÷¼ü¡£
Àý1: (Ã÷È·Ö¸¶¨Ö÷¼ü£¬²¢ÇÒÓд˱Ê×ÊÁÏ£¬ ......
MySQL ÖÐÎÄÏÔʾÂÒÂë
Èç¹ûÄãÓöµ½ÂÒÂëÎÊÌ⣬¿ÉÒÔ´ÓÏÂÃæ¼¸¸öÎÊÌâÖð²½¼ì²é£º
£¨1£©¼ì²éÄãµÄÎļþ´æ´¢±àÂëÊÇ·ñºÍ meta ÉùÃ÷µÄÒ»Ö£¬¼ÙÈçÄãµÄÎļþÊǰ´ÕÕ utf-8 ±àÂë´æ´¢£¬µ«ÊÇ meta È´ÉùÃ÷Ϊ gb2312 £¬½«µ¼ÖÂÂÒÂë¡£
½â¾ö°ì·¨£º½«Ò³Ãæ´æ´¢±àÂëºÍ meta ÉùÃ÷±£³ÖÒ»Ö¡£ÓüÇʱ¾ ......
mysql_affected_rows() ·µ»Ø±»×îеÄUPDATE, DELETE»òINSERT²éѯӰÏìµÄÐÐÊý¡£
mysql_close() ¹Ø±ÕÒ»¸ö·þÎñÆ÷Á¬½Ó¡£
mysql_connect() Á¬½ÓÒ»¸öMySQL·þÎñÆ÷¡£¸Ãº¯Êý²»ÍƼö£»Ê¹ÓÃmysql_real_connect()´úÌæ¡£
mysql_change_user() ¸Ä±äÔÚÒ»¸ö´ò¿ªµÄÁ¬½ÓÉϵÄÓû§ºÍÊý¾Ý¿â¡£
mysql_create_db() ´´½¨Ò ......
¿´MySQL²Î¿¼ÊÖ²á ·¢ÏÖCREATE TABLE ʱÓжàÖÖÊý¾Ý¿â´æ´¢ÒýÇæ£º
TYPE = {BDB | HEAP | ISAM | InnoDB | MERGE | MRG_MYISAM | MYISAM }
ÍøÉϲéÁËϾÝ˵MyISAM¡¢InnoDBÁ½ÖÖÒýÇæ³£ÓÃ
´óÖÁÇø±ðÈçÏÂ[²»ÖªÊÇ·ñ׼ȷ]£º
¸ß¼¶´¦Àí:
MyISAMÀàÐͲ»Ö§³ÖÊÂÎñ´¦ÀíµÈ¸ß¼¶´¦Àí£¬¶øInnoDBÀàÐÍÖ§³Ö¡£
Ö´ÐÐËÙ¶È:
MyISAMÀàÐ͵ıíÇ¿µ÷µÄÊÇÐ ......