背景
尼安德特人的颅腔很大,这意味着它们有一个大的脑子,甚至比现代人还要大,尼人的脑容量为1200-1750立方厘米,而现代人为1100-1600立方厘米,这说明尼人同样具有非凡的才智。
尼安德特人灭绝时间与现代智人迁徙时间完全吻合.
为什么脑容量更大的尼安德特人会被现代智人消灭?
我们知道一个人的密集社交圈是有上限的, 大概是150. 超过就很难维持亲密关系. 所以尼安德特人的部落大概人数就是150人.
尼安德特人的脑虽然比智人更大,但负责抽象思维和语言表达的空间比智人小,因此他们在文化艺术方面的表现逊于智人。
智人的想象力更强, 更早的发明了语言代替梳毛, 协作群体突破邓巴数150. 形成了更大的可协作群体.
数据库也一样, 在不同的场合需要的功能也是不一样的, 例如全文检索要的是分词和倒排索引, 空间搜索要的是空间索引. 高并发的点查要的是行存储, 而大范围的分析要的是列存储和并行计算. 并不是说某个功能做到世界第一这个数据库就一定是最受用户欢迎的.
视频回放: https://www.bilibili.com/video/BV1Hq4y1p7Ai/
场景:
在不同的场合需要的功能也是不一样的, 例如全文检索要的是分词和倒排索引, 空间搜索要的是空间索引, 图式关系查询需要递归. 高并发的点查要的是行存储, 而大范围的分析要的是列存储和并行计算.
挑战:
大多数的数据库都只做单项冠军, 综合能力差.
PG解决方案:
table access method, 可扩展的数据存储结构.
- 列存储, 解决大范围的分析导致的IO和计算瓶颈.
- lsmtree, 解决高速写入时索引更新增加RT导致的写入吞吐瓶颈.
- heap, 解决高速写入, 高并发查询OLTP业务的性能问题.
- zedstore 行列混合存储, 解决OLTP OLAP混合场景性能问题.
- zheap undo多版本控制, 解决高频率更新导致的膨胀问题.
- 索引组织表, 解决PKV搜索IO多跳瓶颈.
index access method, 可扩展的索引存储结构.
- btree
- hash, 解决大字段点查,btree的空间占用瓶颈或大字段超出btree page1/3的错误问题
- bitmap, 基于标签的少量条件大量记录聚合查询的精准营销场景性能问题
- GIN, 提高数组元素搜索、JSON元素搜索、全文检索、模糊查询性能.
- SP_GIST、GIST, 提高空间搜索、range搜索、JSON查询性能.
- BRIN, 时序数据索引, 解决引入的索引空间占用大, RT增加的性能问题
- BLOOM, 解决分析场景, 任意字段搜索时的索引空间占用大, RT增加的性能问题
如果以上表或索引的存储结构还不能满足你的需求, PG还能自定义的表和索引接口
使用PG可以因时因地置宜的选择最好的存储结构、索引结构.