一.MySQL架构
二.优化与执行
执行计划是MySQL优化器为了优化查询而生成的一种数据结构,它记录了数据库系统执行查询时所采取的操作流程,即对查询语句的各部分如何进行处理以最终得到查询结果的过程。执行计划通常被表示为一棵树状结构,节点代表不同的操作符(operator),叶子节点代表访问底层数据的方式,例如表扫描或索引查找等。
MySQL解析查询以创建内部数据结构(解析树),然后对其进行各种优化,包括重写查询、决定表的读取顺序,以及选择合适的索引等。用户可以通过特殊关键字向优化器传递提示,从而影响优化器的决策过程。也可以请求服务器解释优化过程的各个方面,使用户可以知道服务器是如何进行优化决策的,并提供一个参考点,便于用户重构查询和schema、修改相关配置,使应用尽可能高效地运行。
在旧版本中,MySQL可以使用内部查询缓存(query cache)来查看是否可以直接提供结果。但是,随着并发性的增加,查询缓存成为一个让人诟病的瓶颈。从MySQL 5.7.20版本开始,查询缓存已经被官方标注为被弃用的特性,并在8.0版本中被完全移除。尽管查询缓存不再是MySQL服务器的核心部分,但缓存被频繁请求的结果集依然是一个很好的实践,一个流行的设计模式是在memcached或Redis中缓存数据