数据库查询的内部实现

2024-04-27

根据我的经验,我使用过很多查询,例如select, order by, wheremysql、sql-server、oracle 等中的子句等 有那么一刻我想,

1)内部是如何编写来实现上述查询的

2)他们使用哪种语言?

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

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


1) 在示意图中,您将按以下步骤进行:

a) 将查询拆分为其组件并创建查询的抽象语法树 (AST)。有一些工具可以做到这一点,过去使用 lex 和 yacc 来完成此任务,现在有更多的选择。

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

c) 您可以遍历这棵树来实现对数据库的小操作和返回的数据。通常这会导致 AST 节点中出现“虚拟临时”表

d) 从你的顶级节点收集东西并将其返回给客户端

2-3)我不认为有特殊的语言。许多是用 C 语言编写的,但也使用 Java 和其他语言

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

真正困难的工作不在于 SQL 解释器/编译器,而在于详细的数据结构以及保持所有内容有效组织和动态调整以适应情况的实质内容,以保持数据库的性能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据库查询的内部实现 的相关文章

随机推荐