• MySQL查询(二)


    MySQL架构

    逻辑架构图

    MySQL执行流程图

    MySQL主要分为Server层和存储引擎层

    Service:

            连接器:主要负责用户登录数据库,进行用户的身份认证,包括校验账户密码,权限等操作

    查询缓存:建立连接,执行查询语句,会先查询缓存,Mysql会先校验这个sql是否执行过,以

    值的形式缓存在内存中,是查询预计,是结果集。如果缓存被命中,就会直接返

    回给客户端,如果没有命中,就会执行后续的操作,完成后也会把结果缓存起来,方便下一

    次调用。不建议使用缓存

    分析器:mysql 没有命中缓存,那么就会进入分析器.

    第一步,词法分析,一条SQL语句有多个字符串组成,首先要提取关键字,比如select

    提出查询的表,提出字段名,提出查询条件等等。做完这些操作后,就会进入第二步。

    第二步,语法分析,主要就是判断你输入的sql是否正确,是否符合mysql的语法。

    优化器:优化器的作用就是它认为的最优的执行方案去执行(虽然有时候也不是最优),比

        如多个索引的时候该如何选择索引,多表查询的时候如何选择关联顺序等

    执行器:当选择了执行方案后,mysql就准备开始执行了,首先执行前会校验该用户有没有

         权限,如果没有权限,就会返回错误信息,如果有权限,就会去调用引擎的接口,

    返回接口执行的结果。

    存储引擎层:

      主要负责数据的存储和读取,采用可以替换的插件式架构,支持InnoDBMyISAM

    Memory等多个存储引擎,其中InnoDB引擎有自有的日志模块redolog 模块

     

    MySQL索引

      什么是索引?

          索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含

    着对数据表里所有记录的引用指针。更通俗的说,数据库索引好比是一本书前面的目录,

    能加快数据库的查询速度。

    索引分类:

    ①单列索引:一个索引只包含单个列,一个表可以有多个单列索引

    ②组合索引:一个索引包含多个列

    索引的使用

    创建索引

    create index indecName on tableName(userName(length))’

    修改索引

    alter table tableName add index indexName(columnName)

    删除索引

    drop index indexName on tableName

     

     

     

     

  • 相关阅读:
    ios中从相册:相机中获取图片信息
    ios中图片的绘画和截图
    UIPickView的简单介绍
    封装类的方式访问数据库(封装字符串、json)
    ajax用户名案例(重点)
    mysql中一对一,一对多,多对多关系
    会话控制:SESSION,COOKIE
    ajax简单案例:返回json型
    ajax同步,异步
    ajax简单案例:字符串返回类型
  • 原文地址:https://www.cnblogs.com/limengcheng/p/12109002.html
Copyright © 2020-2023  润新知