🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
mysql会解析查询,并创建内部数据结构(解析树),然后对其进行各种优化,包括重写查询,决定表的读写顺序,以及选择合适的索引等 用户可以通过特殊的关键字提示(hint)优化器,影响它的决策过程,也可以请求优化器解释优化过程的各个因素,使用户可以知道服务器是如何进行优化决策的,并提供一个参考基准,以便用户重构查询和schema,修改相关配置,使应用尽可能高效运行 优化器并不关心表使用的是什么存储引擎,当存储引擎对于优化查询是有影响的,优化器会请求存储引擎提供容量或某个具体操作的开销信息,以及表数据的统计信息等,例如,某些存储引擎的某种索引,可能对一些特定的查询有优化. 对于select语句,在解析查询之前,服务器会检查查询缓存,如果能够在其中找到对应的查询,服务器就不必再执行查询解析,优化和执行的整个过程,而是直接返回查询缓存中的结果集