MySQL体系结构

Mysql的数据读取浅谈

数据库永远分为俩层去看:CPU+内存,硬盘

 

用户请求过来后,会先通过Commander Dispatcher找到Query Cache Module(缓冲)进行查看
Query Cache Module

       同样的查询,第一条查询,会把从磁盘中查出来的数据缓冲到数据库的内存中,等在一个同样的查询来到时候就直接访问内存(内存读比磁盘读要快的多)

       磁盘io(意为磁盘数据输入输出)   当使用update语句时候,如果只修改一条语句,也会触发mysql的一种机制,让他去在查询一次磁盘,这样更加消耗性能,所以一些公司关掉了此缓冲功能。

注意:mysql8.0以后这个功能被干掉了

当Query Cache Module没有查到时候,他会找到Parser

从此开始也是SQL的语句执行步骤

Parser(解析)

    Parser,又称解析,去知道在哪里能找到对应的表,从而取到相应的数据

解析---》执行计划

核心层(mysqld)(基于CPU和内存):解析sql语句,生成合理的执行计划,然后取数据‘

存储引擎层:

                     存储引擎InnoDB(MySQL5.5之后默认的引擎为InnoDB),是按照主键索引来放置的数据,所以每个主键索引                  都是一条数据,当找到主键索引后,无需再去进行数据定位即可获取到对应的数据。(注:如果创建一个InnoDB类                  型的表,他没有主键,会用第一个非空且唯一的列,会建立隐藏列,以隐藏列为主键)

                     存储引擎MyISAM,典型的堆表,存一条数据就放进去,再来一条就在塞进去,是按照数据存储顺序存放的。                    获取数据时候,比如通过索引找到对应的id后再通过id到表里进行数据定位,比InnoDB要麻烦一步。但是他的辅助索                引更好一些,因为他是直接通过辅助索引就可以查到对应的数据,但是InnoDB得由主键再去进行主键索引查询才能                  获取到数据。

                     至于走那个引擎,需要判断后进行选择,之后进行后续的sql语句执行流程。

Mysql的数据读取浅谈

 

注意:

          1、MySQL是一个单进程多线程的服务器,进而处理高并发

          2、

 

个性签名:一个人在年轻的时候浪费自己的才华与天赋是一件非常可惜的事情

        如果觉得这篇文章对你有小小的帮助的话,记得在左下角点个“????”哦,博主在此感谢!

 

万水千山总是情,打赏5毛买辣条行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾! 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-12-26
  • 2021-12-30
  • 2021-10-15
猜你喜欢
  • 2021-11-29
  • 2022-12-23
  • 2022-12-23
  • 2021-06-22
  • 2022-01-13
  • 2022-12-23
  • 2021-07-23
相关资源
相似解决方案