数据库小结

153 阅读1分钟

数据库小结

GC的常见指标

GC的吞吐量:描述清理垃圾的速度,CPU处理业务的事件 / 总时间(业务+GC)

GC的延迟:单次GC的耗时,通常小于1%

数据库性能影响

事务

索引

几种命令:

DQL:查询 DML:操作 DDL:定义

事务

ACID

原子性:最小单元,要么全部成功,要么全部失败

一致性:数据库始终保持一致的状态,例如转账,A和B的总和保持一致

隔离性:事务间不会相互干扰

持久性:持久到磁盘,故障不会丢失

表级锁

整个表加锁,上锁前先会给更高级别加意向锁

image.png 手动加锁:for update

自动锁库:锁库就是锁所有的表,dump数据库的场景下会涉及

行锁

• 记录锁(Record): 始终锁定索引记录,注意隐藏的聚簇索引 • 间隙锁(Gap): 锁住一个范围 • 临键锁(Next-Key): 记录锁+间隙锁的组合; 可“锁定”表中不存在记录,左开右闭 • 谓词锁(Predicat): 空间索引

可重复读:通过临键锁防止一个范围内插入数据,解决幻读问题

juejin.cn/post/697174…

www.zhihu.com/question/33…

隔离级别默认可重复

www.cnblogs.com/fengzheng/p…

脏读 • 读未提交: READ UNCOMMITTED 不可重复读 • 读已提交: READ COMMITTED MVCC 幻读 • 可重复读: REPEATABLE READ MVCC+间隙锁 • 可串行化: SERIALIZABLE 事务是串行执行的

当前读:

设置方式

全局设置

会话设置

www.cnblogs.com/lifegoeson/…

PG

1.PG里所有的缓存都有2分,内核态+用户态

2.worker的memory设置比较大

修改表结构

索引重建

锁表

抢占资源

主从延时