我一直对如何在数据库中抛出一些SQL很感兴趣,它几乎可以立即有序地返回结果,而不将其视为黑盒之外的任何东西.

到底发生了什么?

我很确定这与值在内存中的规则布局有关,类似于数组;但除此之外,我知道的不多.

如何以便于实现这一切的方式解析SQL?

推荐答案

引擎构建了一个这样的查询计划.

这是一组用于返回您用SQL查询逻辑描述的集合的算法.

几乎每个引擎都让您看到它将为某个查询构建什么查询计划.

  • MySQLPostgreSQL中,您在查询前面加上单词EXPLAIN

  • SQL Server中,您可以在运行查询之前运行SET SHOWPLAN_TEXT ON,或者只需在Management Studio中按Ctrl-L

  • Oracle中,您在查询前面加上EXPLAIN PLAN FOR,然后发出SELECT * FROM (dbms_xplan.display)

在我的博客里,你可能会发现这篇文章很有趣:

也解决了同样的问题.

Database相关问答推荐

将数据拆分为月份(以Postgres为单位

1-2400之间格式奇怪的时间数据

我如何计算mongo中的多个字段?

Oracle SQL 开发人员中的 DB2 数据库

带有字符串列的 SQL 之间的子句

SQL Server 2008如何同步不同服务器中的数据库?

如何在 SQL Server 中生成随机数据?

在迁移中添加行

如何更改 SQLite 数据库列中的值?

不同的数据库是否使用不同的名称引用?

prices价格字段是浮动还是小数好点?

执行语句还是运行脚本?

Slick 3.0 在数据库驱动程序级别是reactive/asynchronous的吗?对于哪些数据库?

表格字段可以包含连字符吗?

传递依赖有什么问题?

SQL - 如何使用 MS SQL 2008 R2 备份数据库并导出为 MDF 文件

为 django 模型自动创建数据的工具

如何通过数据库链接执行 Oracle 存储过程

是否有用于 postgresql 的数据可视化工具,它也能够显示模式间关系?

不同类型的SQL之间的区别?