zoukankan      html  css  js  c++  java
  • Mysql的逻辑架构

    Mysql的逻辑架构图

    相信很少有人看过这个图,因为我刚看见的时候也是挺萌的,在工作中一般大家都用的是Mysql也都会用,但是为啥要看这个呢,我们需要对Mysql的整体有一个简单的认知!

    Mysql是分层的

    整体分为

    Connectors:连接驱动

    Enterprise Management Services & Utillties :服务管理器和一些工具

    Connection Pool:连接池

    Sql interfice : SQL接口

    Parser:解析器

    optimizer:优化器

    Caches & buffer :缓存

    Pluggable Storage Engines:存储引擎  第一次知道原来Mysql有这么对存储引擎[捂脸]

    file system:文件系统 也就是C盘D盘只不过图上画的是分了NTFS和SAN

    files & log : 文件与日志

    是不是看完对Mysql又有了一个全新的认识;我也是

    接下来说一下查询缓存 

    缓存分别会缓存SQL和数据

    SQL缓存默认开启的

    数据缓存默认是关闭的

    数据缓存需要手动开启同时设置缓存大小

    // 查询数据缓存是否开启
    show variables like '%query_cache_type%'
    
    // 查询缓存的大小
    show variables like '%query_cache_size%'
    
    // 设置开启缓存
    

     如果不是ON,修改配置文件以开启查询缓存,默认是OFF:

      vi /etc/my.cnf

      [mysqld]中添加:

      query_cache_size = 20M

      query_cache_type = 1

    // 设置缓存大小    
    set global query_cache_size = 134217728;

    手写SQL

    SQL解析

     优化器

    源SQL

    explain select * from esp_76 where creator =1;

     由此可见是存在where条件的 查询的表是esp_76

    源SQL

    explain select * from esp_76 where 1=1;

     由此可见在经过SQL优化器之后,where 1=1被优化掉了,在Mysql看来有where和没有where的执行结果是一致的

    源SQL

    explain select * from esp_76 where id = null;

     由此可见因为ID是主键,所以不可能为null,所以Mysql在extra中表示出这条SQL是没有返回结果的,并且table字段也是空的,干脆连表都不扫描了

    这就是SQL的优化器

    太困了,下一章说存储引擎

    作者:彼岸舞

    时间:202074

    内容关于:Mysql

    本文来源于网络,只做技术分享,一概不负任何责任

  • 相关阅读:
    php与WebservicesNuSOAP的使用说明(转载)
    获取cpu序列号,硬盘ID,网卡MAC地址(转载)
    system.net.sockets.tcplistener
    用VS2005实现软件多语言版本的迅捷开发(转载)
    洛谷P1776 宝物筛选 题解 多重背包
    2013 ACMICPC亚洲区域赛南京站C题 题解 轮廓线DP
    2017 ACMICPC亚洲区域赛北京站J题 Pangu and Stones 题解 区间DP
    洛谷P1385 密令 题解 动态规划
    洛谷P1028 数的计算 题解 动态规划入门题
    洛谷P1029 最大公约数和最小公倍数问题 题解
  • 原文地址:https://www.cnblogs.com/flower-dance/p/13237188.html
Copyright © 2011-2022 走看看