postgresql笔记(一)

前端之家收集整理的这篇文章主要介绍了postgresql笔记(一)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
1.Postgresql中的数据块大小是固定的8KB,当有数据的长度超过限制时,会被拆分为多个物理行存储在TOAST表中;只有大小超过块大小的四分之一时,才会触发TOAST压缩,这样就会出现“数据量大的表反而占用的空间大小小”的现象 2.fillfactor是填充因子,即数据块填充了百分之多少就不再进行填充了;比如fillfactor=40即往一个数据块填入40%后就不再填充了,剩余的空间给更新用;故频繁更新的表应该设置较小的填充因子 3.分区表的优点:a.删除历史数据更快(例如按天分区表)2.各个分区表上有各自的索引,查询时单个分区表的索引可以完全缓存在内存里c.查询某一部分数据时可以快速定位到分区表,而不用离散的访问整张表 缺点:入库复杂 多大数据量该用分区表:当表大小大于数据库服务器物理内存大小时 4.利用规则创建可更新视图 假如有表: create table pjtest(id int); 有视图: create view v_pjtest as select * from pjtest; 创建规则: create rule rule_pjtest_insert as on insert to v_pjtest do instead insert into pjtest(id) values(NEW.id); create rule rule_pjtest_update as on update to v_pjtest do instead update pjtest set id=NEW.id; create rule rule_pjtest_delete as on delete to v_pjtest do instead delete from pjtest where id=OLD.id; 此时: insert into v_pjtest values(1); 我们: select * from pjtest; 可以看到插入视图的语句,实际把数据插入到了物理表中;不过,从上面的示例可以看出,RULE还是比较弱的。 5.如果一个字段是数组类型,那么就需要用gin索引;hash索引不写WAL日志,在表崩溃或者索引更新失败后无法恢复,只能重建索引,使用需要谨慎;默认的b-tree索引适用于等值查询和范围查询 6.创建索引时会锁表,阻碍对于表的插入、更新、删除,如果需要不阻碍需要在建立索引的语句中加入concurrently,如create index concurrently index_pjtest on pjtest(id); 原文链接:https://www.f2er.com/postgresql/194427.html

猜你在找的Postgre SQL相关文章