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Ëø. ÇëÇóËøÄ
Ïà¹ØÎĵµ£º
package com.qll.operate;
import java.sql.*;
public class OperateUser {
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/test";
String name = "root";
String password = "123456";
static Connection conn = null;
Statement st = ......
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: (Ã÷È·Ö¸¶¨Ö÷¼ü£¬²¢ÇÒÓд˱Ê×ÊÁÏ£¬ ......
NOW()º¯ÊýÒÔ`'YYYY-MM-DD HH:MM:SS'·µ»Øµ±Ç°µÄÈÕÆÚʱ¼ä£¬¿ÉÒÔÖ±½Ó´æµ½DATETIME×Ö¶ÎÖС£
CURDATE()ÒÔ’YYYY-MM-DD’µÄ¸ñʽ·µ»Ø½ñÌìµÄÈÕÆÚ£¬¿ÉÒÔÖ±½Ó´æµ½DATE×Ö¶ÎÖС£
CURTIME()ÒÔ’HH:MM:SS’µÄ¸ñʽ·µ»Øµ±Ç°µÄʱ¼ä£¬¿ÉÒÔÖ±½Ó´æµ½TIME×Ö¶ÎÖС£
Àý£ºinsert ......