建站程序排名,厦门 网站建设,南充城市建设投诉网站,原创作文网站储存引擎介绍
1. 文件系统 操作系统存取数据的一种机制 2. 文件系统类型 不管使用什么文件系统#xff0c;数据内容不会变化 不同的是#xff0c;存储空间、大小、速度 3. MySQL存储引擎 可以理解为#xff0c;MySQL的“文件系统”#xff0c;只不过功能更加强大 4. MySQL…储存引擎介绍
1. 文件系统 操作系统存取数据的一种机制 2. 文件系统类型 不管使用什么文件系统数据内容不会变化 不同的是存储空间、大小、速度 3. MySQL存储引擎 可以理解为MySQL的“文件系统”只不过功能更加强大 4. MySQL存储引擎功能 数据读写 数据安全和一致性 提高性能 热备份 自动故障恢复 高可用方面支持
MySQL储存引擎分类
1. MySQL提供的存储引擎类型如下 InnoDB MyISAM CSV MEMORY ARCHIVE #查看支持的存储引擎 show engines; #查看所有InnoDB的表 select table_schema,table_name,engine from information_schema.tables where engineinnodb; #查看所有MyISAM的表 select table_schema,table_name,engine from information_schema.tables where enginemyisam;
2.其他MySQL分支的存储引擎 PeconaDB默认XtraDB MariaDB默认InnoDB
3.其他存储引擎压缩比高插入数据性能更高 TokuDB RocksDB MyRocks
4.InnoDB和MyISAM的区别 物理上的区别 InnoDB: .frm数据列信息 .ibd数据行和索引信息 MyISAM .frm数据列信息 .MYD数据行信息 .MYI索引信息 特性上的区别 InnoDB支持事物行锁MVCC多版本并发控制支持外键支持热备支持自动故障恢 复CSR 事务Transaction MVCCMulti-Version Concurrency Control多版本并发控制 行级锁(Row-level Lock) ACSRAuto Crash Safey Recovery自动的故障安全恢复 支持热备份(Hot Backup) 复制Replication: Group Commit , GTID (Global Transaction ID) ,多线程(MTS,MultiThreads-SQL ) MyISAM不支持
5.查看存储引擎 #1.查看会话存储引擎 SELECT default_storage_engine; show variables like %engine%; #2.查看指定表的存储引擎 SHOW CREATE TABLE city\G; SHOW TABLE STATUS LIKE city\G #3.查看所有表的存储引擎 select table_schema,table_name,engine from information_schema.tables where table_schema not in (sys,mysql,information_schema,performance_schema);
6.设置存储引擎 #1.临时修改存储引擎重启失效 #1当前会话 set default_storage_engineinnodb; #2新会话全局 set global default_storage_engineinnodb; #2.永久修改存储引擎 #1修改配置文件 vim /etc/my.cnf [mysqld] default_storage_engineinnodb #2创建表指定存储引擎 create table t (i INT) engineinnodb; #3修改指定表的存储引擎 alter table city engine innodb;
表空间概述 1.MySQL数据文件类型 ib_buffer_pool热数据缓存数据下次启动优先加载 ibdata1系统数据字典信息(整个数据库统计信息表的元数据)UNDO回滚表空间等数据。 又被称为共享表空间 ib_logfile0 ~ ib_logfile1: REDO重做日志日志文件事务日志文件 ibtmp1 临时表空间磁盘位置存储临时表 frm存储表的列信息 ibd表的数据行和索引
2.共享表空间 需要将所有数据存储到同一个表空间中 耦合性大管理比较混乱 5.5版本出现的管理模式也是默认的管理模式。数据字典undo临时表索引表数据 mysqldump -uroot -p123 -A --triggers -R --master-data2 /tmp/full.sql sed -i s#ENGINEMyISAM#ENGINEINNODB#g /tmp/full.sql mysql -uroot -p123 /tmp/full.sql 5.6版本以前共享表空间保留只用来存储:数据字典信息,undo,临时表。 5.7版本,临时表被独立出来了 8.0版本,undo也被独立出去了 事务概述
1.事务介绍 主要针对DML语句insert,update,delete的一组数据操作执行步骤这些步骤被视为一个工作单元 1用于对多个语句进行分组 2在在多个客户端并发访问同一个表中的数据时使用 3如果所有步骤都成功则执行 4如果步骤出现错误或不完整则取消
2.事务特性-ACID Atomic原子性 所有语句作为一个单元全部成功执行或全部取消。 Consistent一致性 如果数据库在事务开始时处于一致状态则在执行该事务期间将保留一致状态。 Isolated隔离性 事务之间不相互影响。 Durable持久性 事务成功完成后所做的所有更改都会准确地记录在数据库中。所做的更改不会丢失。
3.事务控制语句 #1.自动提交 #查看自动提交 mysql show variables like autocommit; #临时关闭 mysql set autocommit0; #永久关闭 [rootdb01 world]# vim /etc/my.cnf [mysqld] autocommit0
4.隐式事务提交 现在版本在开启事务时不需要手工begin只要你输入的是DML语句就会自动开启事务。 有些情况下事务会被隐式提交 在事务运行期间手工执行begin的时候会自动提交上个事务 在事务运行期间加入DDL、DCL操作会自动提交上个事务 在事务运行期间执行锁定语句lock tables、unlock tables load data infile 在autocommit1的时候默认就开启了自动提交生产环境需要关闭 事务日志 mysql的工作机制 1.所有的操作都在内存进行 2.优先写日志 3.先看redo在看undo