Mysql逻辑架构

image.png
  • Connectors
    指不同语言中与SQL的交互
  • Connection Pool:连接池
  • 管理缓冲用户连接,线程处理等需要缓存的需求
  • SQL Interface: SQL接口
    接受用户的SQL命令,并且返回用户需要查询的结果。比如select from就是调用SQL Interface
  • Parser: 解析器

主要功能是将SQL语句进行语义和语法的分析,分解成数据结构,然后按照不同的操作类型进行分类,

  • Optimizer:查询优化器
  • sql语句在查询之前会使用查询优化器对查询进行优化
  • 使用“选取-投影-连接”策略进行查询。
 用一个例子就可以理解: select uid,name from user where gender = 1;

     * 这个select 查询先根据where 语句进行选取,而不是先将表全部查询出来以后再进行过滤

     * 这个select查询先根据uid和name进行属性投影,而不是将属性全部取出以后再进行过滤

     * 将这两个查询条件联接起来生成最终查询结果
  • Cache和Buffer: 查询缓存
    Query Cache 对性能的提高是非常显著的。当然它对内存的消耗也是非常大的。
  • 存储引擎接口
    MySQL区别于其他数据库的最重要的特点就是其插件式的表存储引擎
    注意:存储引擎是基于表的,而不是数据库。
    image.png

使用索引的注意事项

  • 尽量创建组合索引(组合索引其实会默认按照最左前缀原则帮我们创建多组索引)
    组合索引(id,name,sex)
  • 索引最左前缀原则
  • 索引覆盖:要查询的列,也要使用索引覆盖住
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。