MySQL PK MongoDB:多文档事宜支持,谁更友爱?
副问题[/!--empirenews.page--]
MongoDB 4.0已经宣布GA版本,而且有很多新成果和改造。在本文中,我们将重点存眷首要成果,毫无疑问,这是对多文档ACID事宜的支持。我们将环绕断绝级别、可一再读、幻读、事宜斗嘴检测等首要成果,通过尝试与MySQL逐一做比拟。 起首会简述先容下ACID事宜断绝级别,然后再步入测试主题正文。 原子性(Atomicity):事宜包括的全部操纵要么所有乐成,要么所有失败,不存在乐成一半的观念。典规范子“西方二元对立头脑——非此即彼”:在二元逻辑系统中只存在两种逻辑值,就是对和错,或正和负,不存在既对又错或非正非负的其他状态。 同等性(Consistency):一个事宜执行之前和执行之后都必需处于同等性状态。典规范子:“金龙,你借我5000元,下个月开支给你。”岂论金龙用什么方法给我转账,分屡次转,乞贷竣事后我银行卡里的余额增进5000元,金龙卡里少了5000元,不能溘然蹦出来1万来。 断绝性(Isolation):数据库回收锁机制来实现事宜的断绝性,当多个事宜同时更新数据库中沟通的数据时,只应承持有锁的事宜能更新该数据,其他事宜必需守候,直到前一个事宜开释了锁,其他事宜才有机遇更新该数据。典规范子:“你去医院看病,要先到护士哪里分诊排号,假如多个患者加塞儿同时进来,医生就发飙了,出去列队,只能一个一个看”。 耐久性(Durability):事宜乐成提交后,它对数据库所做的修改就永世生涯下来,纵然数据库瓦解,数据还能规复到事宜乐成提交后的状态。典规范子:“你去ATM机取钱,功效ATM机妨碍了,你取出来了钱,卡里的余额不能没减。” 一、范围性与限定前提 1、多文档事宜仅合用于副本集。 注:假如是单机,需切到副本集模式。 2、仅合用于WiredTiger存储引擎。 3、假如你的架构是分片Sharding模式,事宜是不支持的。漫衍式事宜打算在4.2版本里支持。 4、事宜只支持CRUD操纵,DDL、DCL操纵不支持。 注:CRUD就是MySQL的DML,意思一样叫法差异罢了。 5、事宜无法在config、admin和local体系数据库中读取或写入。 6、事宜无法在system.*(体系荟萃)里写入。 7、不能有大事宜写入,写入集不能高出16MB(相同MariaDB Galera Cluster写入集wsrep_max_ws_size限定),不然客户端直接报错。 注:假若有大事宜,应该思量将这些大事宜拆分成多少块较小的事宜。譬喻将大于2018年的状态值变动为1,应思量轮回1万条一批量更新,这一点跟MySQL玩法一样。 二、我们第一个事宜 在开始事宜之前,必需建设会话。事宜不能在会话外运行。
Mongo Shell里引入了三个用于建设,提交和终止事宜的新呼吁:
在当前会话中启动事宜
耐久生涯事宜中的操纵改观
终止事宜操纵所做的改观 1、在test库建设t1表,而且插入4条数据。 演示一 演示二 空闲事宜受transactionLifetimeLimitSeconds参数影响,默认60秒。 可通过以下呼吁查察:
假如你想在线改观,可以通过下面的呼吁配置:
也可以写死在/etc/mongod.cnf设置文件里永世见效,名目如下:
注:空闲事宜是指当一个事宜长时刻未提交,那么这个毗连就不能封锁,内存就不开释,,并发一大,导致DB毗连数增多,就会对机能发生影响。默认是60秒,你可以按照本身的环境设定阈值。高出这个阈值,处事端自动杀死未提交的空闲事宜。 三、事宜断绝性演示 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |