你知道mySQL底层工作的几大原理吗?我们带你飞
在编程语言的学习中,常用的关系型数据库管理系统莫过于mySQL所属,它是目前世界上最流行的管理系统之一,特别是在web方面,是最好的应用软件之一。
mySQL将数据分类存储在不同的表中,增加了程序的速度和灵活性,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
从以上我们可以所知mySQL是一个很重要的存在,那关于它的底层原理如何去理解?这是我们今天需要解决的问题,六星教育整理了一些资料,希望能帮助到同学们!
mySQL的底层工作原理
mySQL由SQL接口、解析器、优化器、缓存、存储引擎组成,每个部件组成都是其含义,先来看看每个部件在运行时各发挥什么用处吧?
1.SQL接口
接受用户的SQL命令,并且返回用户需要查询的结果。比如select from就是调用SQL Interface
2.解析器
SQL命令传递到解析器的时候会被解析器验证和解析。
主要功能:
a .将SQL语句分解成数据结构,并将这个结构传递到后续步骤,后面SQL语句的传递和处理就是基于这个结构的
b. 如果在分解构成中遇到错误,那么就说明这个sql语句是不合理的,语句将不会继续执行下去
3.查询优化器
SQL语句在查询之前会使用查询优化器对查询进行优化(产生多种执行计划,最终数据库会选择最优化的方案去执行,尽快返会结果) 他使用的是“选取-投影-联接”策略进行查询。
用一个例子就可以理解: select uid,name from user where gender = 1;
这个select 查询先根据where 语句进行选取,而不是先将表全部查询出来以后再进行gender过滤
这个select查询先根据uid和name进行属性投影,而不是将属性全部取出以后再进行过滤
将这两个查询条件联接起来生成最终查询结果.
4.查询缓存
如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据。
这个缓存机制是由一系列小缓存组成的。比如表缓存,记录缓存,key缓存,权限缓存等
5.存储引擎
MySQL给用户提供了诸多的存储引擎,包括处理事务安全表的引擎和出来了非事物安全表的引擎。在MySQL中,不需要在整个服务器中使用同一种存储引擎,针对具体的要求,可以对每一个表使用不同的存储引擎。包含了InnoDB、MyISAM、MEMORY等三类存储引擎。
在实际工作中,选择一个合适的存储引擎是一个比较复杂的问题。每种存储引擎都有自己的优缺点,不能笼统地说谁比谁好,但建议选择使用InnoDB。
关于mySQL的底层原理,我们已经通过上述所知,明白了它的组成及其功能,无论你是学习什么样的编程语言,但是底层原理是一定会接触到的,对于初学者来说,对于底层原理也许只是一个大概的了解,通晓其基础含义就可以,但是随着技术的提升和经验的积累,就会发觉底层原理琢磨不透,所以很多大神都会去研究底层原理。