注明:数据库的使用是开发必备的一项技能,mysql是现在主流的关系型数据库,在学习mysql的过程中如果脑海中能形成一幅mysql的逻辑架构图,就会有助于深度理解mysql。那么下面来说下mysql的逻辑架构图吧
一、mysql的逻辑架构
mysql的链接管理与安全性
每个客户端发起链接请求都会在服务器层的链接/线程处理中开辟出一个新的线程,这个连接的查询只会在这个单独的线程中执行,该线程只能在某个CPU核心或者CPU中运行,服务器层会负责缓存线程,因此不需要为每个新建的连接销毁或者创建线程。
mysql的查询流程
在解析一个查询语句前,如果查询缓存是打开的,那么MySQL会检查这个查询语句是否命中查询缓存中的数据。如果当前查询恰好命中查询缓存,在检查一次用户权限后直接返回缓存中的结果。这种情况下,查询不会被解析,也不会生成执行计划,更不会执行
mysql会通过解析器解析查询,并创建内部结构解析树,然后对其进行各种优化,包括重写查询、决定表的读取顺序、以及选择合适的索引等。用户可以通过特殊的关键字提示优化器,影响它的决策过程,也可以请求优化器解释(explain)优化