Posted by:
努力记

努力记,通过记录,计划,让自己的努力可以触碰彩虹!

3,067

Mysql:事务、锁表

  • 2013-06-15
  • 暂无评论

事务:

MyISAM存储引擎是一个非事务型的存储引擎,InnoDB是一个事务型的存储引擎

事务表特点:

  • 更安全,即时Mysql崩溃或者硬件问题,也可以数据备份,通过日志可以自动回复
  • 如果自动提交被禁用,可以在同一时间提交更多的语句,可以执行ROLLBACK(回滚)来忽略更改
  • 如果更新失败,所有的变化将被还原,非事务性表,所有发生都是永久的
  • 对于并发访问能提供更好的并发表

非事务性表特点:

  • 更快
  • 对磁盘空间的要求低
  • 执行更新时更低的内存要求

锁定表:

mysql中所有锁定不会成为死锁.

  • wirte锁定: mysql的锁定原理:a:如果表没有锁定,那么锁定;b否则,把锁定请求放入写锁定队列中
  • read锁定: mysql的锁定原理:a:如果表没有锁定,那么锁定;b否则,把锁定请求放入读锁定队列中

有时候会在一个表中进行很多的select,insert操作,可以在一个临时表中插入行并且偶尔用临时表的记录更新真正的表

  1. low_priority属性给一个特定的insert,update或者delete较低的优先级
  2. max_write_lock_count指定一个值(通常很小)来启动mysqld,使得在一定数量的write锁定之后出现read锁定
  3. 通过使用set sql_low_priority_updates=1可以从一个特定的线程指定所有的更改应该由较低的优先级完成
  4. high_priority指定一个select
  5. 如果使用insert、selec出现问题,使用myisam表,因为它支持因为它支持并发的select和insert


back up ↑

无觅相关文章插件,快速提升流量