mysql 高性能引擎_高性能Mysql的逻辑架构和常见的存储引擎

前言:

为了充分发挥MySQL的性能并顺利地使用,就必须理解其设计。MySQL的灵活性体现在很多方面。例如,你可以通过配置使它在不同的硬件上都运行得很好,也可以支持多种不同的数据类型。但是,MySQL最重要、最与众不同的特性是它的存储引擎架构,这种架构的设计将查询处理(Query Processing)及其他系统任务(Server Task)和数据的存储/提取相分离。这种处理和存储分离的设计可以在使用时根据性能、特性,以及其他需求来选择数据存储的方式。(摘自高性能的Mysql)

简而言之:为了更好的学习Mysql你得了解人家的底层架构。

正文:

一、Mysql的逻辑架构

24eab2bd16abe6760b67288942044fe3.png

1.客户端层:

连接处理、授权认证、安全等功能。

2.核心服务层:

查询解析、分析、优化、缓存以及所有的内置函数(例如,日期、时间、数学和加密函数),所有跨存储引擎的功能都在这一层实现:存储过程、触发器、视图等。

3.存储引擎:

存储引擎负责MySQL中数据的存储和提取,服务器通过API与存储引擎进行通信,不同的存储引擎具有功能不同。

二、Mysql常见的存储引擎

数据库储存引擎是数据库底层软件组织,数据库管理系统使用存储引擎创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。

建表的时候指定不同的储存引擎,也会影响此表的特性(存储和操作此表的类型)。

1.MyISAM存储引擎

不支持事务,但整个操作是原子性的

不支持外键,支持表锁

一个MyISAM表有三个文件:索引文件、表结构文件、数据文件

存储表的总行数,执行select count(*) from table时只要简单的读出保存好的行数即可,但是加where条件的时候就需要扫表

采用非聚集索引,索引文件的数据域只存储指向数据文件的指针

支持全文索引和空间索引

2.InnoDB存储引擎

支持事务,支持事务的四种隔离级别

支持行锁和外键约束

主键索引采用聚集索引(索引的数据域存储数据文件本身),辅索引的数据域存储主键的值;因此从辅索引查找数据,需要先通过辅索引找到主键值,再访问主键索引;最好使用自增主键,防止插入数据时,为维持B+树结构,文件的大调整。

两种引擎索引图的的区别:

764af6f99000eca6ed4a1233ff63d90c.png

总结:

今日分享的三局关于自己主题得话:

“不论你的人生被贴上了什么标签,只有你自己可以定义自己。”

“你越早意识到,有趣的人生是靠自己,你的状况就会越好。”

“在浩瀚无垠的宇宙中,在短短的一生里,鼓起勇气,做想做的事,成为想成为的那个自己。”

本文地址:https://blog.csdn.net/jdk_wangtaida/article/details/107842933

希望与广大网友互动??

点此进行留言吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值