《简单MySQL教程一》要点:
本文介绍了简单MySQL教程一,希望对您有用。如果有疑问,可以联系我们。
一、和其它数据库相比,MySQL有点与众分歧,它的架构可以在多种分歧场景中应用并发挥良好作用.主要体现在存储引擎的架构上,
插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离.这种架构可以根据业务的需求和实际必要选择合适的存储引擎.
1.衔接层
最上层是一些客户端和连接服务,包含本地sock通信和大多数基于客户端/服务端工具实现的类似于tcp/ip的通信.主要完成一些类似于连接处理、授权认证、及相关的平安方案.在该层上引入了线程池的概念,为通过认证平安接入的客户端提供线程.同样在该层上可以实现基于SSL的平安链接.服务器也会为平安接入的每个客户端验证它所具有的操作权限.
2.服务层
第二层架构主要完成大多的核心服务功能,如SQL接口,并完成缓存的查询,SQL的分析和优化及部分内置函数的执行.所有跨存储引擎的功能也在这一层实现,如过程、函数等.在该层,服务器会解析查询并创建相应的内部解析树,并对其完成相应的优化如确定查询表的顺序,是否利用索引等,最后生成相应的执行操作.如果是select语句,服务器还会查询内部的缓存.如果缓存空间足够大,这样在办理大量读操作的环境中能够很好的提升系统的性能.
3.引擎层
存储引擎层,存储引擎真正的负责了MySQL中数据的存储和提取,服务器通过API与存储引擎进行通信.不同的存储引擎具有的功能不同,这样我们可以根据本身的实际需要进行选取.后面介绍MyISAM和InnoDB
4.存储层
数据存储层,主要是将数据存储在运行于裸装备的文件系统之上,并完成与存储引擎的交互.
二、查询阐明
首先,mysql的查询流程年夜致是:
mysql客户端通过协议与mysql服务器建连接,发送查询语句,先检查查询缓存,如果命中,直接返回结果,否则进行语句解析,也就是说,在解析查询之前,服务器会先拜访查询缓存(query cache)——它存储SELECT语句以及相应的查询结果集.如果某个查询结果已经位于缓存中,服务器就不会再对查询进行解析、优化、以及执行.它仅仅将缓存中的结果返回给用户即可,这将大大提高系统的性能.
有一系列预处理,好比检查语句是否写正确了,然后MySQL将用户的查询语句进行解析,并创建一个内部的数据结构——分析树,然后进行各种优化,例如重写查询、选择读取表的顺序,以及使用哪个索引等.查询优化器不关心一个表所使用的存储引擎,但是存储引擎会影响服务器如何优化查询.优化器通过存储引擎获取一些参数、某个操作的执行代价、以及统计信息等.
然后,mysql默认使用的BTREE索引,而且一个大致方向是:无论怎么折腾sql,至少在目前来说,mysql最多只用到表中的一个索引.
3、Mysql存储引擎
1、查看敕令
#看你的mysql如今已提供什么存储引擎:
mysql> show engines;
#看你的mysql当前默许的存储引擎:
mysql> show variables like '%storage_engine%';
二、MyISAM和InnoDB
四、SQL语句执行次序
1、手写
二、机读
三、总结
欢迎参与《简单MySQL教程一》讨论,分享您的想法,维易PHP学院为您提供专业教程。
转载请注明本页网址:
http://www.vephp.com/jiaocheng/7080.html