Home > Database > Mysql Tutorial > body text

数据库事务的隔离级别简单总结

WBOY
Release: 2016-06-07 16:10:31
Original
1200 people have browsed it

数据库中事务的隔离级别有四种,级别由低到高分别为:Read uncommitted、Read committed、 Repeatable read和Serializable 四种。这四个级别可以逐个解决脏读、不可重复读、幻读这几个问题。 如果当前隔离级别为Read uncommitted时,可能出现脏读,即可能读

数据库中事务的隔离级别有四种,级别由低到高分别为:Read uncommitted、Read committed、 Repeatable read和Serializable 四种。这四个级别可以逐个解决脏读、不可重复读、幻读这几个问题。

如果当前隔离级别为Read uncommitted时,可能出现脏读,即可能读到还未提交的临时写数据。

如果当前隔离级别为Read committed时,能够避免脏读,但可能造成不可重复读,即两个事务同时对同一个数据进行修改时,发生的数据一致性和完整性的破坏。大部分的数据库的默认级别都是Read committed,如SQL Server和Oracle。

如果当前隔离级别为Repeatable read时,可以避免不可重复读,即当前有两个及以上数量的事务读取同一数据时,数据库选择对第一个访问该数据的事务可读可写,对第二条及其后的事务为只读。尽管这样可以避免不可重复读,但是当事务A两次读取同一个数据时,如果期间有其他对数据库可读可写的事务对数据进行修改时,那么事务A两次读取数据得到的结果极有可能是不一致的,即造成了幻读。

Serializable序列化时数据库中最高级别的事务隔离级别,在该级别下,事务按照顺序执行,这样能够避免脏读、不可重复读和幻读,但所造成的花销大、性能低下。
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!