zoukankan      html  css  js  c++  java
  • 解析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%

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

  • 相关阅读:
    asd
    自勉
    php cli 参数
    编译
    WebMisSharp的协同开发
    WebMisDeveloper4.5.0 基于Ext.net,Extjs,MVC/简单三层的自动生成开发利器
    WebMisDeveloper更新专版
    外设驱动库开发笔记37:S13365BQ光敏二极管作为光度计驱动
    Java学习笔记之多线程 生产者 消费者
    Java学习笔记之IO流&Properties集合
  • 原文地址:https://www.cnblogs.com/zc22/p/1668294.html
Copyright © 2011-2022 走看看