Day6.Mysql架构介绍 -Mysql高级

本文介绍了MySQL的字符集修改、错误日志、查询日志的配置,以及数据库的逻辑架构,包括连接层、服务层、引擎层和存储层的功能。重点讲解了查询优化器和存储引擎的作用,同时阐述了MySQL的插件式存储引擎特性,允许根据需求选择不同的存储引擎。
摘要由CSDN通过智能技术生成

修改字符集

如果是在宝塔上安装的mysql,其配置文件在/etc.my.cnf目录下。
备份配置文件:cp my.cnf my-huge.cnf。这样做的目的是:如果我以后把my.cnf修改的坏了,我们还可以使用my-huge.cnf,起到一个备份的作用。
如果要修改字符集就在配置文件下修改,修改后要重启 重建库 重建表

配置文件

mysql配置文件讲解:https://www.cnblogs.com/gaoyuechen/p/10273102.html
以下都是在my.cnf下配置的
1.二进制文件log-bin:主从复制

 # 开启mysql binlog功能
 log-bin=mysql-bin

2.错误日志log-error:默认是关闭的,记录严重的警告和错误信息,每次启动和关闭的详细信息等。

#数据库错误日志文件
log-error=error.log

3.查询日志log:默认是关闭的,记录查询的sql语句,如果开启会降低Mysql的性能。

#慢查询sql日志
slow_query_log=1
slow_query_log_file=show.log

4.数据文件

  • frm文件:存放表结构
  • myd文件:存放表数据
  • myi文件:存放表索引

MySQL逻辑架构

在这里插入图片描述

  • Connectors:指的是不同语言中与SQL的交互
  • Connection Pool:管理缓冲用户连接,线程处理等需要缓存的需求。MySql数据库的连接层。‘
  • Management Serveices & Utilities:系统管理和控制工具。备份/安全/复制/集群等等。
  • SQL Interface:接受用户的SQL命令,并返回用户需要的查询结果。
  • Parser:SQL语句解析器。
  • Optimizer:查询优化器,SQL语句在查询之前会使用查询优化器对查询进行优化。就是优化客户端请求query,根据客户端请求的query语句,和数据库中的一些统计信息,在一系列算法的基础上进行分析,得出一个最优的策略,告诉后面的程序如何取得这个query语句的结果。例如:select uid,name from user where gender=1;这个select查询先根据where语句进行选取,而不是先将表全部查询出来再进行gender过滤;然后根据uidname进行属性投影,而不是将属性全部取出后再进行过滤。最后将这两个查询条件联接起来生成最终查询结果。
  • Caches & Buffers:查询缓存。
  • Pluggable Storage Engines:存储引擎接口。Mysql区别于其他数据库最重要的特点就是其插件式的表存储引擎(注意,存储引擎是基于表的,而不是基于数据库的)
  • File system:数据落地到磁盘上,就是文件的存储。
    Mysql数据库与其他数据库相比,Mysql有点与众不同,主要体现在存储引擎的架构上,插件式的存储引擎将查询处理和其他的系统任务以及数据的存储提取相分离。这种架构可以根据业务的需求和实际需求选择合适的存储引擎。

逻辑架构分层

在这里插入图片描述

  • 连接层:最上层是一些客户端和连接服务,包含本地sock通信和大多数基于客户端/服务端工具实现的类似于tcp/ip的通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了线程池的概念,为通过认证安全接入的客户端提供线程。同样在该层上可以实现基于SSL的安全链接。服务器也会为安全接入的每个客户端验证它所具有的操作权限。
  • 服务层:MySQL的核心服务功能层,该层是MySQL的核心,包括查询缓存,解析器,解析树,预处理器,查询优化器。主要进行查询解析、分析、查询缓存、内置函数、存储过程、触发器、视图等,select操作会先检查是否命中查询缓存,命中则直接返回缓存数据,否则解析查询并创建对应的解析树。
  • 引擎层:存储引擎层,存储引擎真正的负责了MySQL中数据的存储和提取,服务器通过API与存储引擎进行通信。不同的存储引擎具有的功能不同,这样我们可以根据自己的实际需要进行选取。
  • 存储层:数据存储层,主要是将数据存储在运行于裸设备的文件系统之上,并完成与存储引擎的交互。

参考:https://github.com/RingoTangs/LearningNote/blob/master/MySQL/MySQL.md

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值