zoukankan      html  css  js  c++  java
  • MYSQL结构

    1.mysql程序结构

    1.连接层

    1.提供连接协议:TCP/IP 、SOCKET
    2.提供验证:用户、密码,IP,SOCKET
    3.提供专用连接线程:接收用户SQL,返回结果
    通过以下语句可以查看到连接线程基本情况
    mysql> show processlist;
    

    2.sql层

    1.接收连接层发过来的sql语句
    2.判断sql的语法
    3.判断sql的语义
    4.解析器:解析sql语句,生成执行计划
    5.优化器:选择最优执行计划
    6.执行器:执行选择出来的计划,SQL
    	6.1 与存储引擎层建立交互,将sql语句传给存储引擎层
    	6.2 将存储引擎层传来的数据以表格的形式展示出来
    7.将数据写入缓存
    8.记录日志
    

    3.存储引擎层

    1.与sql层建立交互,接收sql层传来sql语句
    2.与磁盘建立交互,获取数据
    

    2.mysql逻辑结构

    1.库:库的下面全是表
    2.表:元数据 + 真实数据行
    3.元数据:列 + 其它属性(行数+占用空间大小+权限)
    4.列:列名字 + 数据类型 + 其他约束(非空、唯一、主键、非负数、自增长、默认值)
    

    3.mysql物理结构

    1.MySQL的最底层的物理结构是数据文件,也就是说,存储引擎层,打交道的文件,是数据文件。
    2.存储引擎分为很多种类(Linux中的FS)
    3.不同存储引擎的区别:存储方式、安全性、性能
    
    # 数据库创建时,不论库名还是表名,尽量都用小写字母
    

    4.mysql物理大小

    1.段:理论上一个表就是一个段,由多个区构成,(分区表是一个分区一个段)
    2.区:连续的多个页构成
    3.页:最小的数据存储单元,默认是16k
    4.分区表:一个区构成一张段,就是一张表
    
    ########页:最小的存储单元,默认16k########
    ########区:64个连续的页,共1M########
    ########段:一个表就是一个段,包含一个或多个区########
    
  • 相关阅读:
    MyEclipse 快捷键
    Oracle使用split和splitstr函数批量分隔字符串
    linux解压 tar命令
    Crontab的用法
    .net 连接ORACLE中文显示乱码解决方案
    python 列表
    关于ios 11 的问题
    初步了解会计学
    iOS关于直播的链接
    知识链接中.....
  • 原文地址:https://www.cnblogs.com/Applogize/p/13288876.html
Copyright © 2011-2022 走看看