理解mysql_锁的概念

来源:互联网 发布:linux make 退出 编辑:程序博客网 时间:2024/06/06 13:18
对于锁需要重点掌握以下: 
  1.  锁分类 
  ● 表锁 
  ● 行锁 
  ● 对象锁(meta-table锁),在table cache层实现 
  ● 页锁 
  ● 排他锁(互斥锁、X锁) 
  ● 共享锁(S锁) 

2.锁的使用注意事项 
  ● innodb引擎是行级锁,适用于高并发场景的后台系统 
  ● myisam引擎采用的是表级锁,适用于前端web系统 
  ● 执行delete\update时默认会加互斥锁 
  ● innodb, 如果delete \update在where条件后的字段没有加索引,会造成锁表,严重并发性能 
  ● 修改字段、删除主键、删除主键字段时会造成meta-table锁 

设置锁等待超时时间: innodb_lock_wait_timeout=500 (单位为s) 
锁常用的命令: 
  ● 查看表锁争用情况 
          show status like 'table%' 
          

      value值越高,锁争用情况越严重。 

  ● 查看锁表的状态 
          show processlist; 
          对应的status值能看出来是否有锁表。