Mysql 查询语句怎么进行执行的
CS 架构 详细步骤
1 客户端请求到服务端
2 如果开启了缓存 则看缓存是否命中来返回 不实用 5.8 开始废弃了
3 语法解析 解析 sql(转成一颗解析树) 比如乱输入 abddfda 就会报不识别的错误
4 预处理 产生新的解析树(如 table 是否存在, 字段是否存在)
5 查询优化器 生成执行计划 按照 cost 来选择, 恒等式,恒不等式 都会处理好
6 查询执行引擎 -> memory/myisam/innoDB
对于性能优化, 常用的增加连接这种方式 主要参考 server 的内存大小 假设 8G 内存, 留给系统 2G
mysql 自用 3G, 剩余 3GB, 每个连接(线程) 占用 8M, 所以可以扩充到 3*1024/8=384 个
如何开启 mysql 多线程模式: https://www.yzktw.com.cn/post/837899.html
评论