MySQLµÄ±íËøÎÊÌâ(¶þ)——InnoDB±íËøÎÊÌâ
Ê×ÏȲ¹³äÏÂMySQLµÄ±íËøÎÊÌâ(Ò»)û½²µ½µÄϵͳ¿ÉÒÔͨ¹ýÉèÖÃmax_write_lock_count²ÎÊýÀ´¿ØÖÆÐ´µÄÓÅÏȼ¶,µ±Ò»¸ö±íµÄ¶ÁËø´ïµ½Õâ¸öÊýµÄʱºò,MySQL»áÔÝʱµÄ,½µµÍдµÄÓÅÏȼ¶.MySQL¾¡Á¿ÉÙÓÃһЩ¿´Ëƾ«Ã¸´ÔÓµÄÓï¾ä,ÒòΪÄ㸴ÔÓ¿ÉÄܵ¼Ö¸ø±í¼ÓµÄ¶ÁËøÊ±¼ä¾Í³¤,»áµ¼ÖÂдµÄ²Ù×÷ÎÞ·¨½øÐÐ. innodbºÍMyISAM×î´óµÄÇø±ðÔÚÓÚinnodbÖ§³ÖÊÂÎñ´¦ÀíºÍÐм¶Ëø,Ðм¶Ëø´øÀ´µÄºÃ´¦ÊÇ¿ÉÒÔÖ§³Ö´ó¹æÄ£µÄ²¢·¢Ó¦ÓÃ(ÉèÖõĺõÄÇé¿öÏÂ),µ±È»¿ØÖƵĶÔÏóԽС,²½Öè¾ÍÔ½¸´ÔÓ,ÄÇôÏûºÄµÄ×ÊÔ´¾ÍÔ½¶à. ¿ÉÒÔͨ¹ýÔÚMySQLÀïÃæ²é¿´×´Ì¬±äÁ¿µÄ·½Ê½À´²é¿´innodbËøµÄʹÓÃÇé¿ö: mysql> show status like "innodb_row_lock%";
+-------------------------------+-------+
| Variable_name | Value |
+-------------------------------+-------+
| Innodb_row_lock_current_waits | 0 |
| Innodb_row_lock_time | 0 |
| Innodb_row_lock_time_avg | 0 |
| Innodb_row_lock_time_max | 0 |
| Innodb_row_lock_waits | 0 |
+-------------------------------+-------+
5 rows in set (0.00 sec) »¹¿ÉÒÔͨ¹ýshow engine innodb status\G²é¿´Ò»´ó¶ÑÐÅÏ¢.½øÐмòÒª·ÖÎö. innodbÓÐÁ½ÖÖÀàÐ͵ÄÐм¶Ëø:¹²ÏíËøºÍÅÅËûËø;ΪÁËÔÊÐíÐÐËøºÍ±íËø¹²´æ.ʵÏÖ¶à¿ÅÁ£¶ÈËø»úÖÆ,innodb»¹ÓÐ2ÖÖÄÚ²¿Ëø(Intention locks),Õâ¾ÍÊÇÒâÏò¹²ÏíËøºÍÒâÏòÅÅËûËø.ÕâÁ½ÖÖËù¶¼ÊÇ±í¼¶Ëø. a)¹²ÏíËø(S):ÔÊÐíÒ»¸öÊÂÎñÈ¥¶ÁÒ»ÐÐ,×èÖ¹ÆäËûÊÂÎñ»ñµÃÏàͬÊý¾Ý¼¯µÄÅÅËûËø. b)ÅÅËûËø(X):ÔÊÐí»ñµÃÅÅËûËøµÄÊÂÎñ¸üÐÂÊý¾Ý,×èÖ¹ÆäËûÊÂÎñ»ñÈ¡ÏàͬÊý¾Ý¼¯µÄ¸÷Ïî¶ÁËøºÍÅÅËûÐ´Ëø. c)ÒâÏò¹²ÏíËø(IS):ÊÂÎñ´òËã¸øÊý¾ÝÐмӹ²ÏíËø,ÊÂÎñÔÚÈ¡µÃÒ»¸öÊý¾ÝÐеĹ²ÏíËøÖ®Ç°±ØÐëÏÈÈ¡µÃ¸Ã±íµÄISËø. d)ÒâÏòÅÅËûËø(IX):ÊÂÎñ´òËã¸øÊý¾ÝÐмÓÅÅËûËø,ÊÂÎñÔÚÈ¡µÃÒ»¸öÊý¾ÝÐеÄÅÅËûËøÖ®Ç°±ØÐëÏÈÈ¡µÃ¸Ã±íµÄIXËø. ÇëÇóËøÄ
Ïà¹ØÎĵµ£º
ERROR 1005 (HY000): Can't create table ' ****.frm' (errno: 150)
ÎÒÊÇ´ÓÒÔϼ¸¸ö·½Ãæ½â¾öÁË´ËÎÊÌ⣺
1¡¢È·±£²ÎÕյıíºÍ×Ö¶ÎÊÇ´æÔڵģ»
2¡¢×é³ÉÍâ¼üµÄ×Ö¶ÎÒªÇó±»Ë÷Òý(Ö÷ÒªÊÇÍâ¼üÄǸö×Ö¶ÎÒªÇóÔÚÆäËû±íÖÐÊÇÖ÷¼ü)£»
3¡¢Íâ¼ü¹ØÁªµÄÁ½±í»ò¶à±íÒªÇó¶¼ÊÇINNODBÀàÐÍµÄ±í£»
4¡¢×Ö¶ÎÀàÐÍ£¨ËµÃ÷£©ÒªÒ»Ñù`itemId` varchar( ......
create procedure getInfor2()
BEGIN
declare _abc varchar(200);
declare stopFlag int;
DECLARE cursor_name CURSOR
FOR
select zhuanyuan from server;
DECLARE CONTINUE HANDLER FOR NOT FOUND set stopFlag=1;
OPEN cursor_name;
REPEAT
FETCH cursor_name INTO _abc;
begin
if _abc='root'
the ......
select * for updateËø±íµÄÎÊÌâ
ÓÉÓÚInnoDBÔ¤ÉèÊÇRow-Level Lock£¬ËùÒÔÖ»ÓС¸Ã÷È·¡¹µÄÖ¸¶¨Ö÷¼ü£¬MySQL²Å»áÖ´ÐÐRow lock (Ö»Ëø×¡±»Ñ¡È¡µÄ×ÊÁÏÀý) £¬·ñÔòMySQL½«»áÖ´ÐÐTable Lock (½«Õû¸ö×ÊÁÏ±íµ¥¸øËø×¡)¡£
¾Ù¸öÀý×Ó:
¼ÙÉèÓиö±íµ¥products £¬ÀïÃæÓÐid¸úname¶þ¸öÀ¸Î»£¬idÊÇÖ÷¼ü¡£
Àý1: (Ã÷È·Ö¸¶¨Ö÷¼ü£¬²¢ÇÒÓд˱Ê×ÊÁÏ£¬ ......
//µ¼³ö
String mysql="mysqldump -uroot -proot --opt databasename > d:/test.sql";
java.lang.Runtime.getRuntime().exec("cmd /c "+mysql);
//µ¼Èë
String mysql="mysqladmin -uroot -proot create databasename";
java.lang.Runt ......
InnoDBÒ²Ö§³ÖÍâ¼üÔ¼Êø¡£InnoDBÖжÔÍâ¼üÔ¼Êø¶¨ÒåµÄÓï·¨¿´ÆðÀ´ÈçÏ£º
[CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name, ...)
REFERENCES tbl_name (index_col_name, ...)
[ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION}]
[ON UPDATE ......