热门标签 | 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 知识。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 本文详细介绍了如何通过多种编程语言(如PHP、JSP)实现网站与MySQL数据库的连接,包括创建数据库、表的基本操作,以及数据的读取和写入方法。 ... [详细]
  • MySQL中枚举类型的所有可能值获取方法
    本文介绍了一种在MySQL数据库中查询枚举(ENUM)类型字段所有可能取值的方法,帮助开发者更好地理解和利用这一数据类型。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • QUIC协议:快速UDP互联网连接
    QUIC(Quick UDP Internet Connections)是谷歌开发的一种旨在提高网络性能和安全性的传输层协议。它基于UDP,并结合了TLS级别的安全性,提供了更高效、更可靠的互联网通信方式。 ... [详细]
  • 国内BI工具迎战国际巨头Tableau,稳步崛起
    尽管商业智能(BI)工具在中国的普及程度尚不及国际市场,但近年来,随着本土企业的持续创新和市场推广,国内主流BI工具正逐渐崭露头角。面对国际品牌如Tableau的强大竞争,国内BI工具通过不断优化产品和技术,赢得了越来越多用户的认可。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 深入理解 Oracle 存储函数:计算员工年收入
    本文介绍如何使用 Oracle 存储函数查询特定员工的年收入。我们将详细解释存储函数的创建过程,并提供完整的代码示例。 ... [详细]
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 本文详细介绍了 MySQL 的查询处理流程,包括从客户端连接到服务器、查询缓存检查、语句解析、查询优化及执行等步骤。同时,深入探讨了 MySQL 中的乐观锁机制及其在并发控制中的应用。 ... [详细]
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社区 版权所有