对于Java和PHP这类程序员,CRUD,是最常规和普遍的操作
令人作呕的CRUD,你对它麻木不仁了吗?CRUD,你真的会了吗?
需不需要以不同的视角重新省视一下呢?
譬如:
DBA的角度:什么DQL,DML之类的
运维的角度:什么主从架构,读写分离之类的
安全的角度:什么事务控制之类的
业务的角度:什么DDD业务驱动,什么CQRS职责分离之类的
学生的角度:什么重点难点,查询语句,事务,锁之类的
Java高工和架构师的角度:什么缓存,什么并发编程,什么安全编程,线程安全,事务控制,读写锁,共享锁,独占锁之类的
小伙伴们,CRUD,你真的会了吗?懂了吗?
读写操作 | [CRUD] | SQL | CQRS架构 | 锁1 | 锁2 | 缓存使用 | 服务器 | 数据状态 | 事务控制 | 学习策略 |
---|---|---|---|---|---|---|---|---|---|---|
读操作 | [R ] | DQL | CMD命令端 | 读锁 | 共享锁 | 使用缓存 | 主master | 不受影响 | × | 难·重点 |
写操作 | [CUD ] | DML | Query查询端 | 写锁 | 独占锁 | 刷新缓存 | 从slave | 受影响 | √ | 事务和锁 |
术语:
- CRUD:指增、删、改、查四类操作
- C:create 增
- R:read 查
- U:update 改
- D:delete 删
- 事务:Transaction Spring本地事务注解:@Transactional
- CQRS:一种架构模式,分C端(命令端)和Q端(查询端),全称叫命令查询职责分离模式(Command Query Responsibility Segregation)
- SQL:标准查询语句(Structured Query Language)
- DQL:数据查询语言(Data Query Language),SQL的子集之一
- DML:数据操作语言(Data Manipulation Language),SQL的子集之一
- 读写分离:主要有三重考量 -- 1)性能与负载 2)数据安全 3)职责划分