6.1表空间
有时我们需要把不同的表放到不同的存储介质或不同的文件系统下,这时就需要使用表空间。
6.9索引
B-Tree索引:最常用的索引适合处理等值查询和范围查询
Hash索引:只能处理简单的等值查询
其它索引:GiST、SP-GiST、GIN
6.11事务、并发、锁
A.事务的四个特性ACID,对应atomicity原子性-要么全部执行、要么全都不执行, consistency一致性-事务完成时,所有数据保持一致状态, isolation隔离性-无法看到修改之后提交之前的数据状态, durability持久性-对系统的影响是持久性的
B.事务隔离级别:
读未提交:可能脏读-读取到另一个未提交事务写入的数据
读已提交(PG默认级别):可能有不可重复读问题-重新读取前面读取过的数据时,发现该数据已经被另一个已提交事务修改了
重复读:可能幻读-执行一个查询获取到行后,这些数据行可能被其它事务修改了,此时再基于这些读取的行修改数据会出错。
串行化:略
C.两阶段提交
1.分布式系统中,事务协调器联络每台数据库,通知准备提交事务;并受到所有数据库的响应;
2.如果任一数据库失败,则事务协调器通知所有数据库回滚;如果所有响应都成功,则通知所有数据库执行提交。
D.死锁的四要素
互斥条件:独占锁
请求和保持条件:独占锁的情况下,请求其它锁
不剥夺条件:独占锁不能被其它进程剥夺,只能自己释放
环路等待条件:多个事务,彼此持有对方请求的一个锁,又去请求对方的独占锁。
E. 表级锁&行级锁
lock table table_name nowait表级锁
select .... for update|share(nowait) 行级锁
nowait获取不到锁时直接报错,不等待
F.通过系统表pg_locks 死锁定位
11.4索引的特色
1.函数索引
CREATE INDEX .. on table_name(lower(column_name))
2.条件索引
CREATE INDEX ... where col > 100
本文深入探讨数据库管理核心概念,包括表空间的灵活运用,不同类型的索引及其适用场景,如B-Tree和Hash索引,以及事务处理的四大特性ACID。此外,还详细解析了事务隔离级别的潜在问题,如脏读、不可重复读和幻读,并介绍了两阶段提交、死锁预防及锁的类型。最后,文章提供了创建函数索引和条件索引的方法。

2041

被折叠的 条评论
为什么被折叠?



