OushuDB是内存数据库吗?
当内存资源不够的情况下,任务有可能执行不起来
那么 OushuDB 是内存数据库吗?
执行 SQL 的中间结果是在缓存中还是会落盘呢?
是因为哪些特性,使得 OushuDB 的性能比市面上很多数据库性能要高呢?
当内存资源不够的情况下,任务有可能执行不起来
那么 OushuDB 是内存数据库吗?
执行 SQL 的中间结果是在缓存中还是会落盘呢?
是因为哪些特性,使得 OushuDB 的性能比市面上很多数据库性能要高呢?
不是内存数据库,像 OceanBase 这种增删改查都大量使用内存的都不敢说是内存数据库呢。内存资源不够任务执行不起来这个是和软件执行逻辑有关,首先任何软件都是要拿数据到内存计算,数据库通常会在启动或者初始化任务时与分配一块固定的内存,如果这块内存都拿不到,那就会报错了。
OushuDB 是 GP 的计算引擎,继承自 PostgreSQL。可以说是有用到内存,执行计划、查询的热数据块会有部分缓存在内存,但是 GP 大家也知道,缓存随缘啊哈哈。
SQL 中间结果,首先会放到内存,如果内存不够了,可能会 spill 到硬盘,一旦发生 spill,查询性能会大大受影响。
偶数的性能优化,通过学习,我认为有两个主要的点:1.基于 avx 指令集的向量化执行引擎,在分析型场景化提速相较于普通数据库会有 3-5 倍,甚至 10 倍的性能提升;2.Magma 引擎,这种带有自优化和压缩机制的自研引擎,肯定要比通用的 HDFS 性能高很多。
OushuDB 不是内存数据库。
一般来讲,涉及到外存算法时中间的计算结果会落盘。
OushuDB 性能优异的原因有很多,主要有以下方面: