2020-02-28存储引擎

功能了解

数据读写

数据安全和一致性

提高性能

热备份

自动故障恢复

高可用方面支持

等.

存储引擎种类

InnoDB

MyISAM

MEMORY

ARCHIVE

FEDERATED

EXAMPLE

BLACKHOLE

MERGE

NDBCLUSTER

CSV

mysql>show engines;

innodb核心特性:

1、事务(Transaction)

2、MVCC(Multi-Version Concurrency Control多版本并发控制)

3、行级锁(Row-level Lock)

4、ACSR(Auto Crash Safey Recovery)自动的故障安全恢复

5、支持热备份(Hot Backup)6、Replication:Group Commit,GTID(GlobalTransactionID),多线程(Multi-Threads-SQL)

存储引擎查看

使用 SELECT 确认会话存储引擎

SELECT @@default_storage_engine;

写入配置文件vim/etc/my.cnf    [mysqld]default_storage_engine=myisam

SHOW 确认每个表的存储引擎:

SHOW CREATE TABLE City\G;

SHOW TABLE STATUS LIKE 'CountryLanguage'\G

 INFORMATION_SCHEMA 确认每个表的存储引擎


selecttable_schema,table_name,enginefrominformation_schema.tableswheretable_schema notin('sys','mysql','information_schema','performance_schema');

 修改一个表的存储引擎

db01 [oldboy]>alter table t1 engine innodb;注意:此命令我们经常使用他,进行innodb表的碎片整理


平常处理过的MySQL问题--碎片处理(面试问题)

db01 [oldboy]>alter table t1 engine innodb;注意:此命令我们经常使用他,进行innodb表的碎片整理

5.6 平常处理过的MySQL问题--碎片处理

环境:centos7.4,MySQL 5.7.20,InnoDB存储引擎业务特点:数据量级较大,经常需要按月删除历史数据.

问题:磁盘空间占用很大,不释放处理方法:以前:将数据逻辑导出,手工drop表

,然后导入进去现在:对表进行按月进行分表(partition,中间件)业务替换为truncate方式

定期进行碎片整理

最直观的存储方式(/data/mysql/data)


ibdata1:系统数据字典信息(统计信息),UNDO表空间等数据

ib_logfile0 ~ ib_logfile1: REDO日志文件,事务日志文件。

ibtmp1: 临时表空间磁盘位置,存储临时表

frm:存储表的列信息

ibd:表的数据行和索引

表空间(Tablespace)


6.1.1、共享表空间

需要将所有数据存储到同一个表空间中 ,

管理比较混乱5.5版本出现的管理模式,

也是默认的管理模式。5.6版本以,共享表空间保留,只用来存储:数据字典信息,undo,临时表。

5.7 版本,临时表被独立出来了

8.0版本,undo也被独立出去了

共享表空间设置(在搭建MySQL时,初始化数据之前设置到参数文件中)

mysql>select @@innodb_data_file_path;

+-------------------------+

| @@innodb_data_file_path |

+-------------------------+

| ibdata1:12M:autoextend  |

+-------------------------+

1 row in set (0.00 sec)

mysql>show variables like '%extend%';

+-----------------------------+-------+

| Variable_name              | Value |

+-----------------------------+-------+

| innodb_autoextend_increment | 64    |

+-----------------------------+-------+

1 row in set (0.01 sec)

搭建数据库环境的时候  可以提前设置好共享表空间

独立表空间:

从5.6,默认表空间不再使用共享表空间,替换为独立表空间。

主要存储的是用户数据存储特点为:一个表一个ibd文件,

存储数据行和索引信息基本表结构元数据存储:xxx.frm最终结论: 元数据 数据行+索引mysql表数据=(ibdataX+frm)+ibd(段、区、页)

DDL DML+DQLMySQL的存储引擎日志:Redo Log:ib_logfile0 ib_logfile1

,重做日志Undo Log:ibdata1ibdata2(存储在共享表空间中),

回滚日志临时表:ibtmp1,在做joinunion操作产生临时数据,用完就自动

mysql>select @@innodb_file_per_table;

+-------------------------+

| @@innodb_file_per_table |

+-------------------------+

|                      1 |

+-------------------------+

alter table city dicard tablespace;   alter table cityimporttablespace; 比较重要

关闭表空间语句 (慎用)

set global innodb_file_per_table=0;


事务的ACID特性

Atomic(原子性)

所有语句作为一个单元全部成功执行或全部取消。不能出现中间状态。

Consistent(一致性)

如果数据库在事务开始时处于一致状态,则在执行该事务期间将保留一致状态。

Isolated(隔离性)

事务之间不相互影响。

Durable(持久性)

事务成功完成后,所做的所有更改都会准确地记录在数据库中。所做的更改不会丢失。

事务的生命周期(事务控制语句)


 事务的开始

begin

标准的事物语句

DML:insert delete update

DDL 就是一个事物

自动提交策略(autocommit)

db01[(none)]>select @@autocommit;

db01[(none)]>setautocommit=0;

db01[(none)]>setglobalautocommit=0;

注:自动提交是否打开,一般在有事务需求的MySQL中,将其关闭不管有没有事务需求,

我们一般也都建议设置为0,可以很大程度上提高数据库性能

(1)setautocommit=0;setglobalautocommit=0;

+(2)vim/etc/my.cnfautocommit=0

 隐式提交语句


用于隐式提交的SQL语句:begin

a b

begin 

SETAUTOCOMMIT=1

导致提交的非事务语句:DDL语句: (ALTER、CREATE和DROP)

DCL语句: (GRANT、REVOKE和SETPASSWORD)

锁定语句:(LOCKTABLES和UNLOCKTABLES)

导致隐式提交的语句示例:TRUNCATETABLE

LOAD DATA INFILE

SELECT FOR UPDATE

InnoDB 事务的ACID如何保证?





redo的buffer:数据页的变化信息+数据页当时的LSN号LSN:日志序列号 磁盘数据页、内存数据页、redobuffer、redolog

脏页  内存里的数据 没有写到磁盘里的数据

checkpoint 将脏页的数据刷到磁盘

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,200评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,526评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,321评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,601评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,446评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,345评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,753评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,405评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,712评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,743评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,529评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,369评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,770评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,026评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,301评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,732评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,927评论 2 336