当前位置:   article > 正文

Mysql并发控制_mysql数据库并发控制

mysql数据库并发控制

无论何时,只要不止一个查询同时修改数据时,都会产生并发问题。并发控制目的是当多个连接对数据库进行修改时保证数据的一致性。

mysql在两个层面上控制并发:服务器层和与存储引擎层。


读锁/写锁

在处理并发读或者并发写时,系统会采用一套锁系统来解决问题。这套锁系统由两类锁组成,通常称之为共享锁和排他锁,或者叫读锁和写锁。

读锁:资源的读锁是共享的,互不堵塞的。

写锁:写锁是排他的,一个写锁会堵塞其他的读锁和写锁。在给定的时间内只允许一个用户能够写入资源,以防止用户在写操作的时候其他用户读取同一资源。


任何时间,在给定的资源上,被枷锁的数据量越小就允许更多的并发修改,只要相互之间互不冲突即可。但是加锁会消耗系统资源,每一种锁操作如获得锁、检查锁是否解除以及释放锁都会增加系统开销。如何在锁开销和数据安全之间寻求一种平衡,将影响系统系能。


mysql两种重要锁策略

表级锁:MySQL独立于存储引擎提供表锁。

  虽然存储引擎能管理自己的锁,但是MySQL本身也使用了不同的表锁来提高效率。示例,服务器对于ALTER TABLE这个语句使用了表锁。而不管存储引擎的锁管理。
行级锁:InnoDB和Falcon存储引擎提供行级锁,此外,BDB支持页级锁。


声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号