FreeSql.DbContext 实现类似 EFCore 使用方法,跟踪对象状态,最终通过 SaveChanges 方法提交事务。 目前是第二个初版,已实现状态跟踪保存(导航属性的跟踪暂时不支持)。 另外还缺少 rowversion 行锁机制,这个现实好就可以在项目中使用了。 安装 dotnet ...
分类:
数据库 时间:
2019-03-21 13:17:52
阅读次数:
269
分布式锁产生的原因是:当多个客户端要同时并发操作数据库时,可能查出来的数据是相同的而后继续写的时候会出现事务方面的问题。如:商品只有一件而后被出售两次,造成数据幻读。 分布式锁的处理方案有: 使用redis操作, 使用zookeeper操作, 数据库方面操作(行锁) 以上所有的操作都是相当于在多个客 ...
分类:
编程语言 时间:
2019-03-19 21:37:01
阅读次数:
198
悲观锁 总是架设最坏的请款,每次拿数据都认为别人会修改数据,所以要加锁,别人只能等待,直到我释放锁才能拿到锁;数据库的行锁、表锁、读锁、写锁都是这种方式,java中的synchronized和ReentrantLock也是悲观锁的思想。 乐观锁 总是架设最好的情况,每次拿数据都认为别人不会修改数据, ...
分类:
其他好文 时间:
2019-03-12 14:17:13
阅读次数:
189
悲观锁 总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做 ...
分类:
其他好文 时间:
2019-03-02 18:27:39
阅读次数:
169
在MySQL中InnoDB属于存储引擎层,并以插件的形式集成在数据库中。从MySQL5.5.8开始,InnoDB成为其默认的存储引擎。InnoDB存储引擎支持事务、其设计目标主要是面向OLTP的应用,主要特点有:支持事务、行锁设计支持高并发、外键支持、自动崩溃恢复、聚簇索引的方式组织表结构等。 体系 ...
分类:
数据库 时间:
2019-03-01 15:30:17
阅读次数:
201
数据库存储引擎: 一 InnoDB存储引擎 InnoDB是事务型数据库的首选引擎,支持事务安全表(ACID),其它存储引擎都是非事务安全表,支持行锁定和外键,MySQL5.5以后默认使用InnoDB存储引擎。InnoDB主要特性为MySQL提供了具有提交、回滚和崩溃恢复能力的事务安全(ACID兼容) ...
分类:
数据库 时间:
2019-02-28 13:25:49
阅读次数:
259
锁的分类: 1.从粒度来分:表锁和行锁。 2.从类型来分:读锁和写锁。 表锁 偏向MyISAM存储引擎,加锁快,开销小,并发程度最低。 当事务1对表A上了读锁,事务1再想去select同数据库下的其他表就不给查了。事务2此时要修改表A,就阻塞了。 当事务1对表A上了写锁,再想去查找同数据库下其他的表 ...
分类:
数据库 时间:
2019-02-27 20:38:24
阅读次数:
224
根据加锁的范围,MySQL的锁可以分为全局锁,表级锁和行锁。 1. 全局锁 MySQL提供了一个加全局读锁的方法,命令是:Flush tables with read lock(FTWRL),执行该命令以下语句会被阻塞:数据更新语句,数据定义语句和更新事务的提交语句。 1.1 使用场景 全局逻辑备份 ...
分类:
数据库 时间:
2019-02-26 23:36:53
阅读次数:
258
InnoDB是一个支持行锁的存储引擎,它有三种行锁的算法: Record Lock:行锁,单个行记录上的锁。 Gap Lock:间隙锁,锁定一个范围,但不包括记录本身。GAP锁的目的,是为了防止幻读、防止间隙内有新数据插入、防止已存在的数据更新为间隙内的数据。 Next-Key Lock:1+2,锁... ...
分类:
数据库 时间:
2019-02-10 00:12:00
阅读次数:
451
一、用户账号管理与用户相关的配置文件有两个,分别是/etc/passwd和/etc/shadow。前者用于保存用户名称,宿主目录、登录shell等基本信息,后者用于保存用户密码、账号有效期等信息。/etc/passwd文件的每一行内容中包含了七个用:分隔的配置字段,从左到右各配置字段的含义分别如下:第一个字段:用户账号的名称,也是登录系统时使用的识别名称;第二个字段:经过加密的用户密码字串,或者密
分类:
系统相关 时间:
2019-02-07 20:27:39
阅读次数:
202