mysql高级特性

152 阅读1分钟

mysql生命周期

  1. 客户端连接服务器,通信协议为半双工,只能是客户端或者服务端一方发送数据,一方接收数据
  2. 查询缓存
  • 根据一个大小写敏感的哈希表实现
  • 查询与缓存中的查询有一个字节不同都无法匹配
  • 缓存命中则跳过后面所有阶段直接返回数据,否则进入下一阶段

   3. sql解析以及预处理

  • sql解析,服务器将sql语句根据关键字解析,检查关键词的合理性
  • 预处理,检查语句中的语法错误,包括数据表、列是否存在,别名等等

    4. 优化器

  • 根据执行成本,生成一条成本最小的执行计划

    5. 查询执行引擎

  • 根据优化器生成执行计划,调用引擎API逐步执行

    6. 返回数据

mysql分区

分区:一个数据表,划分成多个数据字表分别保存

分区作用:

  • 存储更多信息(系统单个文件大小限制)
  • 查询时,如果where条件中存在分区条件,则只需要扫描一个或几个分区进行查找,优化性能
  • 删除、修改时可以根据分区直接删除修改

分区类型:

  • range,根据给定的区间范围
  • list,根据枚举的值列表
  • hash,按照几个分区进行划分
  • key,与hash一致