• mysql的查询语句原理


    mysqld 的程序结构

    1.连接层
    1)检验用户的合法性
    2)提供两种连接方式
    a)TCP/IP
    [root@db02 ~]# mysql -uroot -p123 -h10.0.0.51
    [root@db01 ~]# mysql -uroot -p123 -h127.0.0.1

    b)socket
    [root@db01 ~]# mysql -uroot -p123 -S /usr/local/mysql/tmp/mysql.sock
    [root@db01 ~]# mysql -uroot -p123 -hlocalhost
    [root@db01 ~]# mysql -uroot -p123
    3)建立一个与SQL层交互的线程

    2.SQL层
    1)接收连接层传来的SQL语句
    2)检查语法
    3)检查语义(检查它属于哪种SQL语句:DDL,DML,DCL,DQL)
    4)解析器:解析SQL语句,生成多种执行计划
    5)优化器:接收解析器传来的多种执行计划,选择最优化的一条方式去执行
    6)执行器:执行优化器传来的最优方式的SQL语句
    a)建立一个与存储引擎层交互的线程
    b)接收存储引擎层,返回的结构化成表的数据
    7)写缓存
    8)记录日志


    3.存储引擎层
    1)接收SQL层传来的SQL语句
    2)与磁盘交互,找到数据并结构化成表的形式,返回给SQL层
    3)建立一个与SQL层交互的线程


    三.什么是实例?

    1.MySQL的后台进程+线程+预分配的内存结构。
    2.MySQL在启动的过程中会启动后台守护进程,并生成工作线程,预分配内存结构供MySQL处理数据使用。

  • 相关阅读:
    java相关
    cmd批处理命令及powershell
    火狐浏览器调试模式
    windows 配置java环境变量
    Acwing-279-自然数拆分(背包)
    Acwing-278-数字组合(背包)
    Acwing-277-饼干(DP)
    Acwing-274-移动服务(DP)
    Acwing-275-传纸条(DP)
    Acwing-121-赶牛入圈(二分, 二维前缀和,离散化)
  • 原文地址:https://www.cnblogs.com/gukai/p/10839771.html
Copyright © 2020-2023  润新知