成功最有效的方法就是向有经验的人学习!

Mysql架构组成之存储引擎总结

一、以下是mysql的架构图

Mysql架构组成之存储引擎总结

Mysql架构组成之存储引擎总结

1.  Connectors的意思是不同语言中与sql的交互,在第一行其中有大家最熟知的php、python、perl等。

2.  Management Tools这个是系统管理和控制的工具,在左上角框内写了很多的工具,列如我们最熟知的Security等控制工具。

3.  Sql interface(SQL接口)主要功能接受用户的sql命令,并且返回给用户,比如我们写一个select * from 就是在调用sqlinterface很好理解

4.  Parser(解析器)将sql语句分解成数据结构,并且将这个数据结构传递给后续的步骤。以后sql语句的传递和处理就是基于这个结构的,如果分解遇到了错误,那么说明这条sql语句是不合理的

5. Optimizer(查询优化器)sql语句在查询之前会使用查询优化器对查询进行优化

6. Caches&buffers(查询缓存)意思就是如果我们查询一个表有命中的查询结果,查询语句就可以直接去查询缓存中取数据

7. Engines(存储引擎)现在有很多种存储引擎,各个存储引擎的优势各不一样,最常用的MyISAM,InnoDB这两种引擎

二、MyISAM与InnoDB的区别及优缺点

在mysql5.1之前默认的存储引擎MyISAM,MyISAM存储引擎的表在数据库中,每一个表都被存放为三个表名的物理文件,首先肯定会有任何存储引擎都不可缺少的存放表结构定义信息的.frm文件,另外还有.MYD&MYI文件,存放了表数据(.MYD)和索引数据(.MYI) MtISAM文件支持三种类型的索引B-Tree R-TreeFull-text在这三个索引中经常用的就是B-Tree索引,另外B-Tree索引有一个较大的限制,就是一个索引所有字段长度之和不能超出1000个字节,它不支持事务,只有锁表。例如以下情况会造成表损坏。Mysql正在写入表时。别kill强制杀死,主机宕机等事故

1、 Innodb在功能方面最重要的一点就是对事务的支持,让innodb成为mysql最为流行的存储引

2、 锁定机制的改进,innodb改变了MyISAM的锁机制,实现了行锁。

3、 实现外键innodb实现了外键引用这一数据库的重要特征

4、 Innodb存储引擎也和MyISAM不太一样,虽然也有.FRM文件来存放表的结构,但是表数据和索引数据是存放在一起的,至于是每个单独放在一起还是所有的表存放在一起,完全都是由用户来决定的

MyIASM不支持事务,而Innodb支持,Innodb的AUTOCOMMIT默认是打开的,每条sql语句会默认被封装成一个事务,自动提交,这样会影响速度,建议还是把多条sql语句显示放在begin和commit之间,组成一个事务去提交。

Innodb的AUTOCOMMIT默认是打开的如下:

#mysql> show variables like '%autocommit%';ema;"
Mysql架构组成之存储引擎总结

Mysql架构组成之存储引擎总结

三、运维工程中会用到的相关选项总结:

1、-e参数 –execute=name,这个参数主要告诉mysql我要执行-e后面的某个命令,而不是通过mysql连接登陆到mysql服务上面。列如我们需要查询mysql中有哪些库具体操作如下:

#mysql  –uroot   –pxxx  -e “show databases;”
Mysql架构组成之存储引擎总结

Mysql架构组成之存储引擎总结

2、建议提示符定义: “\\u@\\h:\\d\\r:\\m:\\s>“

#mysql -uroot -ppwd123 --prompt=”\\u@\\h:\\d\\r:\\m:\\s>“
Mysql架构组成之存储引擎总结

Mysql架构组成之存储引擎总结

U:用户 H:主机 d:当前数据库 r:时 m:分 s:秒

3、–tee=name参数,这个参数用来告诉mysql,将所有的输入和输出内容都记录进文件,在我们一些较大维护变更的时候,为了方便最好是将整个操作的过程的所有输入&输出保存下来。操作如下:

mysql–uroot –pxxx   –tee=/这里跟保存路径

列如:我在/var/log/创建一个测试的日志然后在数据库中创建abc库创建tb1表然后查询测试日志是否存在。

Mysql架构组成之存储引擎总结

Mysql架构组成之存储引擎总结

4、然后打开测试日志查看操作过程

Mysql架构组成之存储引擎总结

Mysql架构组成之存储引擎总结

5、mysqladmin参数

mysqladmin提供的功能都是与mysql管理相关的各种功能,其中也可以加ping命令,ping命令可以很容易的检测mysql服务是否正常的提供服务

#mysqladmin -uroot –pxxx  -h localhost ping
Mysql架构组成之存储引擎总结

Mysql架构组成之存储引擎总结

以上是本机测试本机如果要远程测试的话直接把localhost改为服务器的IP地址就可以了;前提需要开放3306端口firewall-cmd–add-port=3306/tcp –permanent

6、status参数可以直接获取当前mysql服务器的几个基本的状态值,如下:

#mysqladmin -uroot -ppwd123 -h localhost status
Mysql架构组成之存储引擎总结

Mysql架构组成之存储引擎总结

 
以上就是mysql常用的一些参数,了解了之后我们开始写一个监控mysql的脚本,说白了,就是把我们以上用到的参数利用起来写一个shell脚本
shell脚本如下,也许认真看过以上的读者,那么看下面的脚本那肯定是很简单了。如下:
#!/bin/bash  
#检测mysql server是否正常提供服务  
mysqladmin -uroot -ppwd123 -h localhost ping  
#获取mysql当前的几个状态值  
mysqladmin -uroot -ppwd123 -h localhost status  
#获取数据库当前的连接信息  
mysqladmin -uroot -ppwd123 -h localhost processlist  
#获取当前数据库的连接数  
mysql -uroot -ppwd123 -BNe "select host,count(host) from processlist group by host;"  
information_schema  
#显示mysql的uptime  
mysql -uroot -ppwd123 -e "show global status like '%uptime%'"|awk '/ptime/{ calc = $NF / 3600;print $(NF-1), calc"Hour" }'  
#查看数据库的大小  
mysql -uroot -ppwd123 -e "select table_schema,round(sum(data_length+index_length)/1024/1024,4) from information_schema.tables  
 group by table_schema;"
ok当然也标明了哪一行是什么样的意思,运行脚本执行结果如下:
Mysql架构组成之存储引擎总结

Mysql架构组成之存储引擎总结

在以上图中出现一条mysql: [Warning] Using a password on the command line interface can be insecure.这句话告诉我们,[警告]在命令行界面使用密码可能是不安全的。

2、在安装完全新的mysql数据库后查看库,会发现它默认有4个库

Mysql架构组成之存储引擎总结

Mysql架构组成之存储引擎总结

information_schema:数据字典,这个数据库存放了其他所以数据库的信息也就是(元数据)。元数据是关于数据库的数据,如database name 或 table name,列的数据类型,或访问权限等。

performance_schema:性能字典,此数据库为数据库性能优化提供很重要的参考信息

sys:mysql5.7提供了sys系统数据库。sys数据库里面包含了一系列的存储过程,自定义函数以及试图来帮助我们快速的了解系统的元数据信息,sys系统数据库结合了information_schema&&performance_schema的相关数据,让我们更加容易的检索元数据。

赞(0) 打赏
未经允许不得转载:陈桂林博客 » Mysql架构组成之存储引擎总结
分享到

大佬们的评论 抢沙发

全新“一站式”建站,高质量、高售后的一条龙服务

微信 抖音 支付宝 百度 头条 快手全平台打通信息流

橙子建站.极速智能建站8折购买虚拟主机

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

登录

找回密码

注册