我一直对如何在数据库中抛出一些SQL很感兴趣,它几乎可以立即有序地返回结果,而不将其视为黑盒之外的任何东西.
到底发生了什么?
我很确定这与值在内存中的规则布局有关,类似于数组;但除此之外,我知道的不多.
如何以便于实现这一切的方式解析SQL?
我一直对如何在数据库中抛出一些SQL很感兴趣,它几乎可以立即有序地返回结果,而不将其视为黑盒之外的任何东西.
到底发生了什么?
我很确定这与值在内存中的规则布局有关,类似于数组;但除此之外,我知道的不多.
如何以便于实现这一切的方式解析SQL?
引擎构建了一个这样的查询计划.
这是一组用于返回您用SQL
查询逻辑描述的集合的算法.
几乎每个引擎都让您看到它将为某个查询构建什么查询计划.
在MySQL
和PostgreSQL
中,您在查询前面加上单词EXPLAIN
在SQL Server
中,您可以在运行查询之前运行SET SHOWPLAN_TEXT ON
,或者只需在Management Studio中按Ctrl-L
在Oracle
中,您在查询前面加上EXPLAIN PLAN FOR
,然后发出SELECT * FROM (dbms_xplan.display)
在我的博客里,你可能会发现这篇文章很有趣:
也解决了同样的问题.