数据库之间的比较
### 比较
| 比较项 | Oracle | Mysql | Postgres | 
|---|---|---|---|
| 表类型 | 堆表(默认)和索引组织表 | Innodb(索引组织表) MyISAM(堆表) | 堆表 | 
| 运行模式 | 多进程 | 多线程 | 多进程 | 
| 使用协议 | 闭源 | GPL和商业双重协议 | BSD协议 | 
| 数据类型 | 空间类型,json | json,基础空间类型 | jsonb,网络地址,空间类型,全文检索等 | 
| 支持索引 | b-tree,hash,reverse,bitmap,gist,表达式 | full-text,b-tree,hash,r-tree | b-tree,hash,gin,gist,spgist,brin,bloom,rum,zombodb | 
| 异构外部表 | 支持不完全 | 不支持 | 几乎支持任意外部数据源(FDW方式) | 
| 并行 | 支持不完全 | 不支持 | 创建btree索引,hash join,扫描分区表 | 
| 拓展编程 | 不支持 | 不支持 | 大部分语言 | 
| 易上手 | 难 | 简单 | 中等 | 
### 名称解释
- 表类型
    
- 堆表(Heap Table): 数据是散放的,索引和表的数据是分离的,获取按照命中率获取
 - 索引组织表(IOT): 表是一个B树,按照索引来存放,数据存放在叶子节点,与插入的顺序没有关系
 
- 溢出段(OVERFLOW):当表的行数据量很大的时候,会降低查询性能,将溢出数据分开存放.2种方式:PCTTHRESHOLD n(百分比) 和 INCLUDING column_name(指定列) - 对比:
 - HP: 插入更新频繁 不经常使用主键查找
 - IOT: 主键递增 主键(唯一键)查找 查找频繁
 
 - 运行模式
    
- 随着硬件越来越便宜,多进程更能利用资源
 
 
## 基于PG,拓展的项目
- PostGIS: 提供空间对象、空间索引、空间操作函数和空间操作符。同时,PostGIS遵循OpenGIS的规范
 - pipelinedb: 所有的接口都是SQL操作的流式计算数据库
 - postBIS :基因测序