Mysql内存与数据结构
1.Mysql如何完成一个session
2.mysql内存结构
3.mysql数据结构
4.mysql架构设想
1.Mysql如何完成一个session
一个会话流程:
mysql服务器监听3306端口
验证用户
创建线程解析sql
查询优化
打开表
检查buffer是否有对应的缓存记录
到磁盘寻找数据
写入到缓存
返回数据给客户端
关闭表
关闭线程
关闭连接
Mysql如何生成执行计划的?
innodb的统计信息其实是一个不太准确的评估值,评估样本的数量默认上取8个页块的样本数据。这个数量可以通过选项innodb_stats_sample_pages来配置。
收集主要统计信息:
(1) rec_per_key //每一个key,包含多少记录。在存储引擎
(2) records_in_table //当前表上,有多少记录。在存储引擎
(3) rec_in_range //当前表上,在指定范围上有多少记录