执行过程:
- MySQL实例与客户端通过TCP建立连接
- 检验客户端的IP、用户名密码是否符合条件
- 查询该用户的所有权限,后续所有连接中的权限校验都依赖于此时读到的权限
- 每个数据库连接会对应一个线程
- 通过SQL接口接收SQL语句
- 通过解析器对SQL语句进行解析和语法校验
- 校验通过后,通过优化器选择索引和选择最后的执行方案
- 通过执行器校验表是否有操作权限,如果有权限则通过存储引擎的接口进行增删改查
- InnoDB为了提高性能,增删改都是在内存中完成的,所谓的内存就是上图中的buffer pool,如果数据页不在内存中就会先从磁盘中读入内存。
InnoDB的实现细节内容比较多,所以会在后面单独文章中学习总结。MySQL数据库的核心就是存储引擎,默认使用InnoDB,所以后面要对InnoDB做到精通。