MYSQL- 一(mysql的架构介绍)

本文详细介绍了MySQL的各个方面,包括其作为关系型数据库的简介,高级特性如数据库建模优化、SQL语句和服务器配置的优化。重点讲述了Linux环境下MySQL的安装步骤,特别是字符集的配置。还探讨了数据库的内部结构,如二进制日志、查询缓存等。此外,文章还涵盖了存储引擎如InnoDB和MyISAM的对比,以及MySQL的总体架构,强调了连接层、服务层和引擎层的功能。最后,提到了如何查看和选择默认的存储引擎。

一、Mysql简介

MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。

Mysql 可以允许于多个系统上,并且支持多种语言。这些编程语言包括 C 、 C++ 、 Python 、 Java 、 Perl 、 PHP 、 Eiffel 、 Ruby 和 Tcl 等。

二、Mysql高级

1、数据库内部结构和原理,数据库建模优化,数据库索引建立

2、SQL语句优化,SQL编程

3、mysql服务器的安装配置

4、数据库的性能监控分析与系统优化,各种参数常量设定

5、主从复制

6、分布式架构搭建、垂直切割和水平切割,数据迁移

7、容灾备份和恢复

8、shell或python等脚本语言开发

9、对开源数据库进行二次开发

三、MysqlLinux版的安装

 1、  本人是mac m1版可看连接地址

mac m1 的linux 安装装msql5.7 已解决_CB_Beginner的博客-优快云博客

 2、mysql 配置

        开机自启动服务

chkconfig mysql on

查看运行级别

 chkconfig --list |grep mysql

1:mysql的启动文件位置

2:mysql数据存储的位置

3: 进程pid文件

 

 3、查看数据字符集

show variables like 'character%';

 修改字符集配置

在/usr/share/mysql/ 中找到my.cnf的配置文件,

拷贝其中的my-huge.cnf 到 /etc/  并命名为my.cnf 

mysql 优先选中 /etc/ 下的配置文件

然后修改my.cnf:

[client]

default-character-set=utf8

[mysqld]

character_set_server=utf8

character_set_client=utf8

collation-server=utf8_general_ci

[mysql]

default-character-set=utf8

四、Mysql的配置文件

1、二进制日志

        用于主从复制log-bin

2、错误日志

        log-error

3、查询日志

        默认关闭,记录查询的sql语句,如果开启会减低mysql的整体性能,因为记录日志也是需要消耗系统资源的

4、数据文件

        frm文件:存放表结构

        myd文件:存放表数据

        myi文件:存放表索引

5、如何配置 

五、总体结构

        插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离1)、连接层

 最上层是一些客户端和连接服务,包含本地sock通信和大多数基于客户端/服务端工具实现的类似于tcp/ip的通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了线程池的概念,为通过认证安全接入的客户端提供线程。同样在该层上可以实现基于SSL的安全链接。服务器也会为安全接入的每个客户端验证它所具有的操作权限。

2)、服务层

2.1    Management Serveices & Utilities : 系统管理和控制工具  

2.2  SQL Interface : SQL接口

      接受用户的SQL命令,并且返回用户需要查询的结果。比如select from就是调用SQL Interface

2.3 Parser : 解析器

       SQL命令传递到解析器的时候会被解析器验证和解析。 

2.4 Optimizer : 查询优化器。

     SQL语句在查询之前会使用查询优化器对查询进行优化。 

     用一个例子就可以理解: select uid,name from user where  gender= 1;

     优化器来决定先投影还是先过滤。

  

2.5 CacheBuffer 查询缓存。

      如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据。

      这个缓存机制是由一系列小缓存组成的。比如表缓存,记录缓存,key缓存,权限缓存等

       缓存是负责读,缓冲负责写。

3)、引擎层

存储引擎层,存储引擎真正的负责了MySQL中数据的 存储和提取 ,服务器通过API与存储引擎进行通信。不同的存储引擎具有的功能不同,这样我们可以根据自己的实际需要进行选取。后面介绍MyISAM和InnoDB

4)、存储层

  数据存储层,主要是将数据存储在运行于裸设备的文件系统之上,并完成与存储引擎的交互。

六、存储引擎

     1)、 看你的 mysql 当前默认的存储引擎 

  mysql> show variables like '%storage_engine%'; 

2)、引擎介绍

1InnoDB存储引擎

InnoDB是MySQL的默认 事务型引擎 ,它被设计用来处理大量的短期(short-lived)事务。除非有非常特别的原因需要使用其他的存储引擎,否则应该优先考虑InnoDB引擎。 行级锁,适合高并发情况

2MyISAM存储引擎

MyISAM提供了大量的特性,包括全文索引、压缩、空间函数(GIS)等,但MyISAM 不支持事务和行级锁(myisam改表时会将整个表全锁住) ,有一个毫无疑问的缺陷就是崩溃后无法安全恢复。

3)、对比

innoDB支持行锁 能高并发,MyISAM 支持表锁不适合高并发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追逐路上的小人物

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值