Mysql数据库学习(一)

第一部分:Mysql架构

Mysql的逻辑结构

组件:客户端、核心服务、存储引擎
在这里插入图片描述
Mysql查询的5个过程过程:

  1. 客户端向MySQL服务器发送一条查询请求
  2. 服务器首先检查查询缓存,如果命中缓存,则立刻返回存储在缓存中的结果。否则进入下一阶段
  3. 服务器进行SQL解析、预处理、再由优化器生成对应的执行计划
  4. MySQL根据执行计划,调用存储引擎的API来执行查询
  5. 将结果返回给客户端,同时缓存查询结果

Mysql的初始化是通过加载 /etc/my.cnf文件完成初始化加载。

Mysql存储引擎
常见的有InnoDB、MyISAM、MEMMORY、Archive
InnoDB:唯一支持外键,支持事务,用于大规模活跃数据查询 (行锁)
MyISAM:不支持外键、主键和事务,支持数据压缩,强调数据快速读取,用于冷数据查询。(表锁) (linux默认引擎)
memory:默认使用HASH索引,数据存储在内存中,读取速度快。(表锁)
MERGE:是一组MyISAM引擎的组合,用来进行多表的进行查询和更新操作。(表锁)

补充:
InnoDB和MyISAM都是使用B+Tree(平衡二叉树+有序数组链表)进行索引。
memery使用Hash进行索引

B+树索引 和哈希索引的比较

  1. 如果是等值查询,哈希索引有绝对优势

  2. 范围查询检索,哈希索引性能比较差

  3. 哈希索引不支持排序,和模糊查询

  4. 存在大量重复键,由于存在哈希碰撞问题,哈希索引的性能比较低

MySql的物理模块

  • 日志文件
  • 数据文件 通常存储在mysql/data 目录
  • 其他文件:如mysql.sock 这个文件是用来服务器与客户端进行套接字连接的文件

猜你喜欢

转载自blog.csdn.net/weixin_40990818/article/details/85865590