解析SharpHSQL源码

 

由于要研究内存数据库,于是开始分析一些开源的数据库。

 

基本上,这个数据库是个垃圾。和sqlite的架构相比,这个简直就一废物!没有扩展性、内部结构混乱、性能不敢评价。

 

基本结构如下:

 

核心模块就是Table,其他的基本上都是简单的东西。当然还有一块是sql分析。

 

数据持久在文件,通过log加载成为表数据table,保存在cache里面。使用单向列表node存储。

 

column保存表结构,其他的就是一些索引约束。

 

查询的时候,基本上是这些类“混合”+“混乱”操作得出结果。

 

比如sqlparser解析sql后,得到各种expression+tablefilter。这个时候就把table引入了tablefilter。

然后tablefilter又和expression之间混合混乱一轮,对表数据过滤处理,得到了select的返回对象。

select再组装各种result.record,返回给用户。

 

------------

 

架构上看,基本上就一个乱七八糟。

table和database相互依赖

table和cache和row又相互依赖。

然后index、constraint又和table、row相互依赖,基本上就是乱七八糟!!!!

整个database又贯穿在index、table、parser、constraint、expression里面。

 

我不知道这么美国佬的智商到底有多少!如果要重写,估计整个hsql要全部推翻。

 

sqlite有自身的特色,例如Sqlite虚拟机VDBE,这样一下子把sql和数据存储隔离,最起码就比hsql简单了50%

 

美国佬这些废物的智商真的值得怀疑!!!!

 

posted @ 2010-02-14 20:19    阅读(1271)  评论(1编辑  收藏  举报
IT民工