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Ëø. ÇëÇóËøÄ
Ïà¹ØÎĵµ£º
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: (Ã÷È·Ö¸¶¨Ö÷¼ü£¬²¢ÇÒÓд˱Ê×ÊÁÏ£¬ ......
ʹÓÃUbuntu
Server×÷Ϊ±¾µØ²âÊÔ»·¾³ÒѾÓÐÒ»¶Îʱ¼äÁË£¬Ò»Ö±¶¼ÊÇʹÓÃapt-get·½Ê½À´°²×°¸÷ÖÖÓ¦ÓÃÈí¼þ£¬Í¨¹ýÔ´Âë±àÒë°²×°Ó¦ÓÃÈí¼þÊÇLinuxºÍUnix»·
¾³ÏÂ×î³£Óõķ½Ê½¡£Í¨¹ýÔ´Âë±àÒë°²×°µÄ×î´óºÃ´¦¾ÍÊÇÄãÖªµÀ×Ô¼º×öÁËʲô£¬ÕâÖÖ·½Ê½°²×°Èí¼þ×ÔÓÉÁé»î£¬Ò²ÊÊÓÃÓÚ¸÷ÖÖÆ½Ì¨¡¢Î¬»¤·½±ã£ ......
×÷Õߣº°½Ê¿Î°
Mysql ÓõÄÊÇLinux (non RPM packages)
Ò»¡¢½«mysql-5.5.0-m2-linux-i686-glibc23.tar.gzÏÂÔØµ½/home/ikmb ²¢ÔÚµ±Ç°Ä¿Â¼½âѹ£»
……..
mysql-5.5.0-m2-linux-i686-glibc23/data/mysql/
mysql-5.5.0-m2-linux-i686-glibc23/data/test/
…………
¶þ¡¢´´½¨MySQL×飬 ......
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 ......