mysql的概念以及mysql架构分析

mysql的概念以及mysql架构分析,第1张

概述介绍《mysql的概念以及mysql架构分析》开发教程,希望对您有用。

《MysqL的概念以及MysqL架构分析》要点:
本文介绍了MysqL的概念以及MysqL架构分析,希望对您有用。如果有疑问,可以联系我们。

MysqL是目前最流行的关系型数据库管理系统,在WEB应用方面MysqL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一.在给大家分享之前,先介绍下 小编组织的一个学习交流企鹅群:526929231 有什么不懂的问题,都可以在群里问,学习气氛很好,众多大神都很热情.群文件里面也有各种全面的python材料,以及自动化运维学习材料,是一个非常适合学习的地方,小编期待大家的加入,大家一起学习,共同成长!

MysqL逻辑布局

从图中可以看到MysqL由以下几个部分组成:

连接池

管理服务和工具组件

sql接口

查询阐发器

优化器

缓存

插入式存储引擎

物理文件

物理布局:

MysqL软件(MysqLd)+配置文件+MysqL数据文件(磁盘上的文件:datadir)

逻辑的架构:

MysqL架构

实例(MysqLd_process)+memory+datadir

整体布局:

物理+逻辑(实例)=MysqL

数据库 --理解为磁盘上面的文件

实例 --运行中MysqLd+memory

MysqL中是一个实例对应多个物理库

存储引擎、

存储引擎便是指表的类型以及表在计算机上的存储方式.

MysqL存储引擎有很多但是最常用的肯定是innoDB引擎,从5.5.5开始默认的MysqL存储引擎便是InnoDB

innoDB存储引擎简介

除了MyISAM外,使用最为广泛的存储引擎,由第三方公司开发,和MysqL遵守相同的开源许可协议.

支持事务平安

数据多版本读取

锁定机制的改进

实现外键

它有表空间的概念,但与oracle表空间相比又有较大的不同,首先,innodb的表空间分为两种形式,一种是共享表空间,也便是所有数据都被存放在同一个表空间(一个或多个数据文件)中,通过innodb_data_file_path来指定,增加数据文件须要停机重启.另外一种是独享表空间,也便是每个表的数据和索引都存放在一个单独的.ibd文件中.

事务的4个特性(commit/rollback):

1、数据完整性 事务完成之后,它对于数据的修改是永久性的,即使出现系统故障也能够坚持2、一致性 在事务开始和完成时,数据都必须坚持一致状态.这意味着所有相关的数据规则都必须应用于事务的修改,以坚持数据的完整性;事务结束时,所有的内部数据结构(如B树索引或双向链表)也都必须是正确的.3、隔离性 数据库系统提供一定的隔离机制,保证事务在不受外部并发 *** 作影响的“独立”环境执行.这意味着事务处理过程中的中间状态对外部是不可见的,反之亦然.4、原子性 事务是一个原子 *** 作单元,其对数据的修改,要么全都执行,要么全都不执行

查看存储引擎命令

MysqL> show variables like '%storage%'; --查询当前MysqL支持的储存引擎+----------------+--------+| Variable_name | Value |+----------------+--------+| storage_engine | MyISAM |+----------------+--------+1 row in set (0.00 sec)MysqL> show engines; -查询当前库中支持存储引擎

变动默认的存储引擎

# vim /data2/my.cnf --静态修改default-storage-engine=innodb#重启MysqL/etc/init.d/MysqLd stop/etc/init.d/MysqLd start

测试innodb事务:

事务的4个特性(commit/rollback):

1、数据完整性

2、一致性

3、隔离性

4、原子性

innodb与myisam的区别MysqL> use aaaa;MysqL> create table t1(ID int) engine=myisam; #设置t1表格为Myisam引擎MysqL> create table t2(ID int);MysqL> create table t3(ID int);关闭自动提交功能MysqL> show variables like 'autocommit';+---------------+-------+| Variable_name | Value |+---------------+-------+| autocommit | ON |+---------------+-------+1 row in set (0.01 sec)MysqL> set session autocommit=off; #关闭自动提交功能query OK,0 rows affected (0.00 sec)MysqL> insert into t2 set ID=1;query OK,1 row affected (0.00 sec)事务有隔离性,MysqL> commit; 提交query OK,0 rows affected (0.04 sec)不提交 看不到

回滚

innodb数据存储的方式

总结:

在上图中可以看到数据先到buffer_pool(缓存池中)当我们commit的时候才会保留到硬盘当中,也就是说如果数据在保留到磁盘成功之后才算一个事务完成

innodb存储引擎的配置参数

innodb存储引擎的配置参数:innodb_buffer_pool_size = 2G --innodb的数据缓冲大小(索引+数据),一般是物理的%50-%80innodb_max_dirty_pages_pct = 90 --缓冲区的脏块到达90%写回磁盘innodb_flush_log_at_trx_commit = 1 --1时只要commit会强制把事务日志写回磁盘,0时只要commit把日志写至 *** 作系统缓冲区,等待 *** 作写盘,2时当commit延迟1秒写出回磁盘innodb_log_buffer_size = 8M --事务日志文件的缓冲大小innodb_data_file_path = ibdata1:100M:autoextend --innodb数据文件innodb_log_file_size = 256M --日志文件大小innodb_log_files_in_group = 3 --有三组日志innodb_data_home_dir =/abc --数据文件存储的根目录,不写路径默认存储在datadir中innodb_log_group_home_dir= --事务日志的存储根目录

欢迎参与《MysqL的概念以及MysqL架构分析》讨论,分享您的想法,内存溢出PHP学院为您提供专业教程。

总结

以上是内存溢出为你收集整理的mysql的概念以及mysql架构分析全部内容,希望文章能够帮你解决mysql的概念以及mysql架构分析所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/1158059.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-01
下一篇2022-06-01

发表评论

登录后才能评论

评论列表(0条)

    保存