欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Mysql知识整理(二)

程序员文章站 2022-11-30 17:06:08
1、Mysql体系结构Connectors:支持多种语言的客户端Management Services & Utileties:系统管理和控制工具,Mysqldump,Mysql复制集群,分区管理等Connection Pool:连接池,管理及缓存用户连接,username,pwd,线程处理等需要缓存的需求。SQL Interface:sql接收的入口,接收用户的sql命令,并返回用户需要的结果。(相当于mvc里的controller)Parser:解析器,sql命令...

1、Mysql体系结构
Mysql知识整理(二)

  • Connectors:支持多种语言的客户端

  • Management Services & Utileties:系统管理和控制工具,Mysqldump,Mysql复制集群,分区管理等

  • Connection Pool:连接池,管理及缓存用户连接,username,pwd,线程处理等需要缓存的需求。

  • SQL Interface:sql接收的入口,接收用户的sql命令,并返回用户需要的结果。(相当于mvc里的controller)

  • Parser:解析器,sql命令传递到解析器这里会对sql进行校验和解析

  • Optimizer:查询优化器,sql在查询之前会使用查询优化器对查询进行优化,并确立唯一的查询计划

  • Cache & Buffer:查询缓存,如果查询中有命中缓存,查询结果可以直接到查询缓存中获取结果

  • Pluggable storage Engines:插拔式的存储引擎,存储引擎是mysql中具体的与文件交互的子系统

  • File System:文件系统,数据,日志redo,undo,binlog,索引,错误日志,查询记录,慢查询等。
    2、各大存储引擎
    存储引擎用于修饰表,5.5以后的版本默认为InnoDB,是插拔式,可随时卸载和加载。
    2.1、CSV

  • 不能定义索引,列定义必须为NOT NULL,不能设置自增

  • CSV表的数据存储用“,”隔开,可直接编辑CSV文件进行数据的编排。

  • 不适合用大表或者数据的在线处理

  • 数据安全性低

  • 适用数据的快速导入和导出,表格直接转成CSV
    2.2、Archive

  • 压缩协议(ARZ文件格式)进行数据的存储,磁盘占用少,大概是InnoDB存储的1/20

  • 支持支Insert和Select两种操作

  • 只允许自增ID列创建索引

  • 适用日志,大量的设备数据采集归档,只做保存不做修改的场景
    2.3 Memory

  • 数据都是存储在内存中,处理效率高,表的默认限定为16M

  • 不支持大数据存储类型如blog、text,里面的字段都是定长。

  • 支持hash索引,等值查询效率高

  • 字符串强制使用char 如 varchar(32)变为Char(32)

  • 数据可靠性低,重启系统或者崩溃数据丢失

  • 适用数据热点快速加载

  • 查询结果内存中的计算,大多数都是采用这种引擎作为临时表的存储和计算,当临时表的大小小于默认16M时用这个引擎,当大于默认的16M时用MyIsam。
    2.4、Myisam

  • 较快的数据插入和读取性能

  • 较小的磁盘占用(相对于InnoDB)

  • 支持表级别的锁,不支持事务

  • 数据文件与索引文件分开存储(myd和myi)

  • myisam的统计count方法可以是通过额外的常量进行返回,所以select count(*)的查询效率极高。

  • 适用于只读应用或者以读为主的业务。
    ** 2.5、InnoDB**

  • 支持事务

  • 行级别的锁

  • 聚集索引

  • 数据行内容与索引结构在一个文件(IBD)

  • 外键支持,保证数据的完整性

  • 5.5及以后的默认存储引擎。
    暂时先到这里,下次整理sql执行计划

本文地址:https://blog.csdn.net/weixin_38972374/article/details/107303105