1.1. MySQL逻辑架构心里记着一张MySQL组件关系图对于理解MySQL服务器有很大帮助。图1-1展示了一张MySQL架构的逻辑视图。最上面一层包含的服务不是MySQL所独有的。它......
1.1.2. 优化与执行
MySQL通过解析请求来生成一个内部结构体(解析树),然后在此基础上应用一系列的优化策略。这些策略可能包括重写请求,确认读取表的顺序,决定用哪些索引等等。你也可以在查询语句中添加一些特殊的关键字来影响优化器的优化策略选择。你也可以要求服务器来解释优化的各个方面。这可以使得你知道服务器在优化时所做的决定,以此为参考可以修改查询语句,数据库表定义以及设置等,以使数据库尽可能高效的运行。我们将在第四章详细介绍优化器的知识。
优化器实际上可以不关心存储引擎具体使用哪一个数据库表,但是存储引擎却可以对服务器如优化查询产生影响。优化器会向存储引擎询问它的一些能力,特定操作的代价以及表数据的统计信息。比如有些存储引擎所支持的索引类型对于特定的查询很有帮助。我们将会在第三章详细介绍索引以及数据库模式的优化。
在解析查询之前,服务器会先询问查询缓存,查询缓存中只存储SELECT语句以及它对应的结果。如果有人发出了一条和查询缓存中已经存在的SELECT语句一样的查询请求,那么服务器就不必解析、优化甚至执行-它只是简单地将已经存在的结果集返回。我们将会在“MySQL查询缓存”一节中详细对此进行描述。
2/2 首页 上一页 1 2 |