热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mysql引擎总结_Mysql架构组成之存储引擎总结

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

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;"

1de9299708fda4eaa7460ed72509eeb9.png

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

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

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

#mysql –uroot –pxxx -e “show databases;”

4681b0e481c9921ea78f6ce2f4635697.png

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

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

#mysql -uroot -ppwd123 --prompt=”\\u@\\h:\\d\\r:\\m:\\s>“

454fcb2e2025fee7afad7e3c0f602114.png

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

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

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

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

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

27501a1e1aa5a74dc745d800702f21b3.png

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

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

14516fd53e0dd6f6cd34cbb18d030c56.png

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

5、mysqladmin参数

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

#mysqladmin -uroot –pxxx -h localhost ping

2f21da5227af5b0598ca39e47d2f8f47.png

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

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

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

#mysqladmin -uroot -ppwd123 -h localhost status

649140b9dcf70d8c8ef8f69929fe18d9.png

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当然也标明了哪一行是什么样的意思,运行脚本执行结果如下:

b51ceb682e5e99bab67d23e157906e1b.png

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

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

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

29006ae90cdc15f7f0277cf0638a2d54.png

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

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

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

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



推荐阅读
  • PHP面试题精选及答案解析
    本文精选了新浪PHP笔试题及最新的PHP面试题,并提供了详细的答案解析,帮助求职者更好地准备PHP相关的面试。 ... [详细]
  • 本文详细探讨了在Web开发中常见的UTF-8编码问题及其解决方案,包括HTML页面、PHP脚本、MySQL数据库以及JavaScript和Flash应用中的乱码问题。 ... [详细]
  • 本文探讨了在Windows系统中运行Apache服务器时频繁出现崩溃的问题,并提供了多种可能的解决方案和建议。错误日志显示多个子进程因达到最大请求限制而退出。 ... [详细]
  • 本文介绍如何通过整合SparkSQL与Hive来构建高效的用户画像环境,提高数据处理速度和查询效率。 ... [详细]
  • 本文详细介绍了 MySQL InnoDB 存储引擎的事务机制,包括 ACID 特性、redo 日志、undo 日志以及 checkpoint 的作用和实现方式。 ... [详细]
  • Maven + Spring + MyBatis + MySQL 环境搭建与实例解析
    本文详细介绍如何使用MySQL数据库进行环境搭建,包括创建数据库表并插入示例数据。随后,逐步指导如何配置Maven项目,整合Spring框架与MyBatis,实现高效的数据访问。 ... [详细]
  • 本文详细介绍了如何在Oracle VM VirtualBox中实现主机与虚拟机之间的数据交换,包括安装Guest Additions增强功能,以及如何利用这些功能进行文件传输、屏幕调整等操作。 ... [详细]
  • 本文详细介绍了JQuery Mobile框架中特有的事件和方法,帮助开发者更好地理解和应用这些特性,提升移动Web开发的效率。 ... [详细]
  • CentOS下ProFTPD的安装与配置指南
    本文详细介绍在CentOS操作系统上安装和配置ProFTPD服务的方法,包括基本配置、安全设置及高级功能的启用。 ... [详细]
  • Web动态服务器Python基本实现
    Web动态服务器Python基本实现 ... [详细]
  • 本文作为《WM平台上使用Sybase Anywhere 11》系列的第二篇,将继续探讨在Windows Mobile (WM) 系统中如何高效地操作Sybase Anywhere 11数据库。继上一篇关于安装与基本测试的文章之后,本篇将深入讲解数据库的具体操作方法。 ... [详细]
  • 深入理解:AJAX学习指南
    本文详细探讨了AJAX的基本概念、工作原理及其在现代Web开发中的应用,旨在为初学者提供全面的学习资料。 ... [详细]
  • 本文详细介绍了笔记本电脑上多种实用的快捷键,包括屏幕调整、图形设置、分辨率更改、驱动更新、导航操作、音量控制及屏幕锁定等,旨在帮助用户更高效地使用笔记本电脑。 ... [详细]
  • 本文介绍了如何在两个Oracle数据库(假设为数据库A和数据库B)之间设置DBLink,以便能够从数据库A中直接访问和操作数据库B中的数据。文章详细描述了创建DBLink前的必要准备步骤以及具体的创建方法。 ... [详细]
  • 本文详细记录了腾讯ABS云平台的一次前端开发岗位面试经历,包括面试过程中遇到的JavaScript相关问题、Vue.js等框架的深入探讨以及算法挑战等内容。 ... [详细]
author-avatar
lily0407520
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有