连接层
当Mysql 启动 等待客户端连接请求,服务器都会新建一个线程处理(如果是线程池的话,则是分配一个空的线程),每个线程独立,拥有各自的内存处理空间,但是,如果这个请求指示查询,没关系,但是若是修改数据,很显然,当两个线程改同一块内存是会引发数据同步问题
连接到服务器,服务器需要进行验证,也就是用户名,ip,密码验证,一但连接成功,还要验证是否具有执行某个特定查询的权限(如 是否允许客户端对某个数据库某个表的某个操作)
Sql 处理层
缓存
-- 数据缓存是否开启
show variables like ‘%query_cache_type%‘
-- 缓存的大小
show variables like ‘%query_cache_size%‘
SET GLOBAL query_cache_size = 134217728; 设置缓存大小
开启缓存
set global query_cache_type = 1; 或者 修改 配置文件
解析查询
mysql 优化器