mysql生命周期
- 客户端连接服务器,通信协议为半双工,只能是客户端或者服务端一方发送数据,一方接收数据
- 查询缓存
- 根据一个大小写敏感的哈希表实现
- 查询与缓存中的查询有一个字节不同都无法匹配
- 缓存命中则跳过后面所有阶段直接返回数据,否则进入下一阶段
3. sql解析以及预处理
- sql解析,服务器将sql语句根据关键字解析,检查关键词的合理性
- 预处理,检查语句中的语法错误,包括数据表、列是否存在,别名等等
4. 优化器
- 根据执行成本,生成一条成本最小的执行计划
5. 查询执行引擎
- 根据优化器生成执行计划,调用引擎API逐步执行
6. 返回数据
mysql分区
分区:一个数据表,划分成多个数据字表分别保存
分区作用:
- 存储更多信息(系统单个文件大小限制)
- 查询时,如果where条件中存在分区条件,则只需要扫描一个或几个分区进行查找,优化性能
- 删除、修改时可以根据分区直接删除修改
分区类型:
- range,根据给定的区间范围
- list,根据枚举的值列表
- hash,按照几个分区进行划分
- key,与hash一致