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
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与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)不提交 看不到
总结:在上图中可以看到数据先到buffer_pool(缓存池中)当我们commit的时候才会保留到硬盘当中,也就是说如果数据在保留到磁盘成功之后才算一个事务完成
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学院为您提供专业教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |