数据库查询的内部实现

gmh*_*mhk 3 mysql database sql-server oracle database-design

根据我的经验,我使用了许多查询,如select,order by,where子句等.在mysql,sql-server,oracle等等我想过的片刻,

1)如何在内部编写以实现上述查询

2)他们使用哪种语言?

3)是编程语言吗?如果是哪种语言?

4)实现这种复杂数据库需要什么样的环境

Pet*_*ans 6

1)以示意图形式,您将按如下方式进行:

a)在其组件中拆分查询并创建查询的抽象语法树(AST).有这样的工具,在古代lex和yacc用于此,现在有更多的选择.

b)在第一步中,优化器将通过应用已知的相等转换重新组织树,因此查询将是最高效的方式,通过使用索引,执行首先返回少量结果的查询,这样您就可以减少加入等等....

c)您可以使用此树来实现数据库上的小操作和返回的数据.通常,这会导致AST节点中的"虚拟临时"表

d)从顶级节点收集内容并将其返回给客户端

2-3)我认为没有特殊语言.许多都在C语言中,但也使用Java和其他语言

4)我认为最好的环境是这种工作的安静环境.;-)

真正的辛苦工作不是在SQL解释器/编译器中,而是在详细的数据结构中,以及保持一切有效组织和动态调整以适应情况以保持数据库性能的细节.