00:00
那现在的时间是晚上的9点半,那么咱们就开始今天晚上的学习,那么今天晚上呢,咱们着重来给大家介绍一下MYSQL的存储引擎,那存储引擎是我们在学习MYSQL数据库的时候,那么最重要的一个部分,那么当我们把MYSQL的存储引擎掌握以后呢,是非常有助于大家后续的进一步学习,如果说大家之前哈都听过赵老师的课程,那应该都知道赵老师呢在上课的过程当中会给大家记录一个课堂笔记,通过记录课堂笔记的一种方式,我们会把今天晚上比较重要内容给大家记录下来,那么今天晚上呢,着重给大家介绍以下两个方面的问题,首先咱们需要对关系型数据库的一些基本知识要有一个基本了解,重点放到第二个部分。重点讨论一下MYSQL的存。
01:00
存储引擎,那么MYSQL呢,它支持多种存储引擎,那么这里呢,赵老师呢,先把几款比较主要的存储引擎先给大家列举到这这个地方,首先我们在MYSQL里面呢,支持我们的什么memory存储引擎,那什么叫memory存储引擎呢?当你使用这种存储引擎创建一张MYSQL的表,此时呢,表中的数据只会存储在内存当中,如果说MYSQL重新启动,那么这一种类型的表中的数据将会丢失,稍后呢,我们会通过一个示例也帮助大家理解好这个呢是我们在MYSQL里面它所支持的第一种存储引擎,好,第二种呢,是我们的嘛,这个MY存储引擎,那么什么叫myson存储引擎呢?通过使用myson存储引擎,我们能够去管理什么,管理我们的非事物。
02:00
不表,那么换句话说,当你使用这种存储引擎,你所创建的表,它是不支持我们的事物操作,那因此呢,我们在讲这个部分知识之前,首先就会给大家补充,给大家介绍一下什么是我们的事物,那事物呢是我们在关系型数据库里面呢,非常重要的一个特征,那目前我们讲你的low c口数据库也支持简单的事物操作,但是呢,它不能够严格保证事物的什么ACI的属性,当你明白了什么是事物以后,反过来去理解什么叫管理非事务表,那么自然而然的就能明白好,这个呢是我们在MYSQL里面它支持的第二种存储引擎,当然目前我们在MYSQL里面呢,使用的最多的呢,是我们的什么呢?这个Inno DB存储引擎,那么inno DB是目前在MYSQL里面。
03:00
使用最广泛那么的一种存储引擎,那么从这个体系架构上去看,那么这个inno DB呢,就非常类似我们的allcom数据库的什么体系架构好,因此呢我们会放到so来给大家进行详细的介绍,因此介绍到这个地方的时候,那么赵老师呢,就把目前我们在MYSQL里面主要使用的集中存储引擎给大家做了一个梳理,稍后呢,咱们通过具体事例来帮助大家理解好。现在呢,咱们就按照这样的一个顺序来给大家进行相关的介绍。首先介绍一下第一个部分,关系型数据库的一些基础知识,那么为什么要给大家介绍这个部分呢?因为这些基础知识尽管非常简单,但是呢,赵老师认为越是基础的知识呢,越是重要,那么越呢,比如说我们的什么,比如说。
04:00
你的这个什么my sitcom, 还有我们的嘛,Orcom, 还有我们的post sitcom等等等等,那这些都是属于传统的这个关系型数据库,因此呢,咱们首先就需要把这个基本概念呢,来给大家做一个详细的介绍,首先张老师呢,问大家第一个问题啊,那么如果知道的同学呢,就请积极回答小赵老师的问题,那什么问题呢?就是说什么是我们的关系型数据库,那你的mycy Oracle PG都是属于传统的关系型数据库,但是呢,大家有没有想过,那么它到底指的是什么含义呢?基本概念大家是否都清楚?好,我们来给大家做一个介绍,那么到底什么叫关系型数据库呢?那最基本的一个概念是它是什么呢?它是基于我们的关系模型,好,我们基于我们的关系模型,我们所提出来的一种。
05:00
数据库就叫做关系型数据库,那么接着再往下面去讨论,什么又叫关系模型呢?啊,就关系模型,那么关系模型的本质就是我们使用一张二维表的什么行和列的这种方式来保存数据的模型,就叫关系模型,换句话去说,在你的mycycle里面,Oracle里面,PG里面,最终都是以这种行和列的二维表的形式来存储数据,这个呢是我们整个这里面最基本的一个概念。那么我们在关系型数据库当中,当你去设计数据库的表结构的时候,那么咱们预一般需要干嘛呢?需要遵循我们的范式,那么什么叫遵循范式呢?那当你拿到一个问题的时候,你在这个关系型的。
06:00
数据库当中首先需要根据咱们的需求设计出我们的一二模型,也就是实体关系模型,那有了一二模型以后,再抽象城市关系模型,然后呢,再根据我们的第一范式,我们的第二范式,我们的第三范是最终设计出关系型数据库的表结构,对,那么这个呢,是我们通常的一个做法,那么既然是如此的话,赵老师呢,可能就需要问大家一个问题,好,各位直播间同学,你能不能够告诉一下赵老师,我们在关系型的数据库当中,当你遵循范思以后,他有什么优点,他又有哪些缺点?那么如果大家都知道呢,就请积极回答一下赵老师的问题,如果说大家不了解,那么就请在公屏之上,请给赵老师呢回复一个0,或者呢,给赵老师呢?
07:00
点个赞啊,那么这些基础知识看似呢非常简单,但是呢,越是简单基础的内容那么越是重要,好,咱们接着往下来给大家进行介绍,好感谢咱们的同学啊诶那么当你在关系的形式过当中追寻范式以后,它有什么优点呢?优点就是它能够去减少什么,减少数据的冗余,那么什么叫减少数据,等于呢,因为呢,咱们可以在设计表结构的时候呢,那么表与表之间通过表的外键那么进行关联,那么这种遵循范式的设计思想,它能够减少数据冗余,数据它不会多存,但是呢,正因为它有这样的一个优点,同时也就带来了一个缺点,缺点就是当你遵循方式以后,对,尽管减少数据冗云,但是呢,他会。
08:00
什么影响这个什么,或者说降低吧,对,降低什么查询的效率,那为什么说它会降低查询效率呢?因为刚刚提到你把数据存储在了多张表格当中,表与表之间通过表的外键进行关联,因此呢,我们在查询数据的时候,那就需要执行一个什么多表连接的一个多表查询,而你在进行多表查询的时候,首先就会产生我们的笛卡尔级,那么由于在笛卡尔级里面包含一些不正确的数据,因此呢,咱们需要使用连接条件。来避免使用抵抗全集,那么这样的一个查询的一个过程,它是会降低咱们查询的性能的,那么有了这些基本知识以后,那么给大家去小结一下,那整个我们的这个什么呢?整个我们的这个关系型的数据库啊,不管是你的MYCQ也好,Orac口PT也好的,那么它基本的一个什么出发点是什么呢?它是你通过牺牲啊,牺牲查询的效率干嘛呢,来节约存储的空间,好这个呢是整个关系型数据库它最基本的一个出发点啊,怎么重复一下,通过牺牲查询的效率在节约存储空间,因为在早些年代的这个时候,那存储的介质是很是很昂贵的,那么我需要节约一些存储的空间来节约我的成本。
09:43
并且呢,我们在关系型的数据库当中还有一个很重要的一个特点呢,那么一般来讲哈,一般来讲咱们的这个关系型数据库呢,它在这个读写数据的时候都是按照什么方式呢?按照咱们的行式存储,那么什么叫行式存储呢?简单来说就是我在读写数据的时候,我以行为单位,我读写完第一行以后,我在读写第二行,那么我在读写第三行,那么它是按照行式存储的方式,那既然是如此的话,赵老师呢,再问大家一个问题,那么这种行式存储的关系型的数据库,那么它适合执行哪些操作,你能够把它适合执行的操作发送到咱们的公屏之上吗?如果说大家不了解呢?
10:43
啊,就请在公屏之上,请给赵老师呢回复一个0,或者呢给赵老师呢点一个赞啊好,咱们接着往下来给大家进行介绍,好,那么行式存储的这个关系型的数据库呢,主要适合我们的DML的什么事物操作,那么什么又叫做DML呢?它是代表的是我们的数据操作语言,主要包含我们的么插入更新和删除语句,那么反过来去说,你的传统的这个关系型的数据库就并不适合执行我们的查询语句,比如说当我们去构建我们的数据仓库,那么你在构建数据仓库的时候,推荐使用什么方式呢?推荐使用咱们的式存储,那么关于这个问题呢,放到so后面来给大家单独介绍什么是我们的列式存储那通。
11:43
如果使用劣势存储呢,我们进一步构建我们的数据仓库,来执行我们的查询语句,那这个问题那稍后呢,来给大家进行相关的说明,因此呢,咱们介绍到这个地方的时候,还有一点啊,就是呢,我们传统的这个关系型数据库呢,它什么,既然它适合我们的DML的什么事物操作,因此它很重要的一个特征,那么它一般来说呢,它适用的我们什么场景呢?适用于啊啊因为它适合执行事务操作嘛,因此呢,它它适用应用场景,那么应用场景那多用于我们的什么,多用于我们的olt配置什么应用场景,好问一下各位直播间同学知不知道什么是olt p, 如果大家知道呢,就请在公屏之上,请给赵老师呢回复一个1,如果大家不知道呢,就请给赵老师呢回复个0,那么这些概念和名词都是大家在学习。
12:43
数据库的时候,或者呢,学习大数据的时候,那么需要掌握的知识,那什么叫OLTP呢?那么它的全称是我们的嘛,On online, 核心单词是中间的那个team,它叫什么?川萨ing,那P呢,是我们的嘛,Processing, 好,如果呢,你把这个呢翻译成是我们的中文的话,它就叫做什么连接事物处理,因此呢,我们在事物型的操作里面推荐使用传统的关系型数据库,比如my c com orac的PG,那么关于什么是事物呢,会放到so home来给大家进行相关的介绍,好介绍到这个地方时候。
13:25
实际上呢,就把整个关系型数据库的一些基本知识都给大家做了一个非常详细的一个说明,顺便呢给大家补充一点点,那么就是我们的历史存储,因为传统的这个关系型的数据库呢,它都是按照行式存储的方式来读写数据,主要用于我们的事物操作,插入、更新和删储,当我们需要执行大量的什么查询语句的时候,推荐使用咱们的劣势存储,因此呢劣势存储数据库,那么它主要什么适合执行我们的话查询操作,那么如果是这种场景呢,推荐使用这种方式,而我们在构建我们的嘛,构建我们的数据仓库的时候,那就需要推荐使用这种方式,因为我们在数据仓库里面呢,就是需要去执行大量的什么查询语句,当然数据仓库呢,它实际上呢,就是什么O。
14:25
O lap的一种具体实现,那么什么又叫olap呢?当然它相对的是我们的OLTP,解释一下olap的什么基本的含义,把它全称写在咱们的课堂笔记上,它叫做什么on an, 核心单词是中间的那个A,它叫什么analyticp呢?是我们的processing,好,如果呢,你把这个呢也翻译成是中文的话,它就叫做什么连金,什么分析处理,那既然是分析处理的话,一般来讲啊啊,这个不绝对,我们在olap当中一般只会执行我们的查询语句,通过查询语句。
15:10
来去分析和处理数据,如果是这种方式呢,推荐使用劣势存储,而我们的数据仓库呢,又是OLAAP的一个什么具体实现方式,当然目前构建数据仓库呢,主要有两种形式,哪两种形式呢?那么来给大家做个介绍,那一种形式呢,是使用咱们的大数据的技术,比如说你可以使用你的哈杜普或者呢18g弗林克去构建我们的什么呢?构建我们的这个。离线数仓或者是实时数仓,老师D个C可能讲解一下吗?啊赵老师呢,不涉及D这块的内容哈,赵老师呢,主要涉及的是大数据技术,数据库技术,还有这个容器的技术,目前呢,还不涉及这个什么deepic相关的啊这些内容啊,内容好回到咱们的这个课堂笔记上面来啊对,那构建数据仓库的第一种方式是我们使用大数据,就是技术,刚刚提到,比如说你能够使用你的哈杜PMSPA克弗linknk构建我们的实时输仓,或者呢构建我们的离线输畅,对,就是能构建数据仓库的一种方式密,目前呢,比较主流的还有另外的一种方式是什么呢?可以使用咱们的MPP数据库,那什么叫MPP数据库呢?就是大规模并行处理数据库,比如说你能够使用你的dori,或者呢,使用你的可以耗时构建我们的数据仓库。那归。
16:44
这些更加深入的知识,赵老师呢,当然会放到后续的什么。后续的直播课里面单独的来给大家进行相关的介绍,好,因此呢,介绍到这个地方的时候,整个今天晚上的第一个小节,有关关系型数据库的一些基本知识就给大家介绍到这里哈,好问一下各位直播间同学,关于第一个部分大家是不是都听明白了,如果说这个部分大家都听明白了呢,就请在公屏之上,请给赵老师呢回复一个6,或者呢给赵老师呢点一个赞。接下来呢,咱们重点给大家介绍第二个部分,MYCYQ的什么存储引擎,那存储引擎呢,是我们在学习MYCQL的时候,大家最重要的一个部分,MYSQL呢,通过存储引擎它来读写数据,当然我们在MYSQL里面。
17:47
它支持多种类型的存储引擎,这地方呢,给大家列举的主要的三个,那比如说第一个呢,是我们的memory,那么第二是我的MY,第三个是我们的in no DB, 好,现在呢,咱们就按照这个顺序,一个一个呢来给大家介绍这三种存储引擎,它们各自的功能和作用分别是什么?首先咱们看一下第一种存储引擎,那么叫做我们的M妹存储擎,而当你使用这种存储引擎,你去创建一张MYSQL的表,此时呢,这种表它是我们嘛,我们的内存表,那什么叫内存表呢?它的表的数据只保存在当前MYSQL数据库L实例的内存当中,那么这句话呢,很重要,给大家记在课堂笔记上,内存表的什么数据只保存在什么保存在当只保存在当前。
18:47
Mycom实例的什么内存中,那么换句话说,它不支持数据的持久化啊,再写一下不支持,什么不持持啊,不支持持久化操作,既然这种类型的表不支持持久化,如果说你重新启动MYSQL数据库实例,这种表的数据它将会丢失,因此呢,内存表的主要的用途呢,是因为干嘛呢,缓存数据,那么你不要把很重要的数据存储在这一种类型的表当中么?这个呢,就是我们的第一种存储引擎,Mi存储引擎,那么有了这个基本知识以后。
19:32
现在呢,我们能不能够使用这种存储引擎去创建一张内存表呢?当然是可以的,好,咱们来给大家演示一个示例,好切换到我们的实业环境当中去,好张老师呢,这地方用的是MYCQ8.0的版本,那么如果你使用5.7应该是一样的。好首先咱们看一下当前的MYSQL数据库实力的状态,是不是一个正常运行状态,查看什么MYCQL,我们呢,第点service的通过输出的信息,咱们呢,可以看到当前我的MYCQL实例呢,是正在运行的什么active的running状态,相当于呢,我的数据库服务器是正常启动的,好当你安装好了MYSQL以后,我们直接使用什么MYSQL的什么客户端,指定用户名,定密码呢,就能够连接到我们的什么MYCQL,实际上现在看一下我在当前环境里面包含了哪?
20:33
哪些数据库信息执行的什么修data basis好目前呢,我下面呢有这么多什么数据库,我切换到什么是got,什么4D数据库当中,使用什么create table语境创建一张内存表,如何在创建表的时候使用我的这个memory啊内存的什么存储引擎呢?好,我们来给大家演示一下表的名字很简单,叫TEST1,这个里面包含两个字段,一个是ID号,它是一个整数,加了一个名字,它的类型的是什么?是一个ver恰它是个么一个字符串长度呢是10个字符的,那如果你在创建一张MYSQL的表的时候,不指定它的存储引擎,而在默认的情况之下,MYSQL呢,将会使用什么?将会使用这个in no DB作为创建表的默认的存储引擎。好,关于这个inno DB呢,放在。
21:33
呃,稍后来给大家进行相关的介绍,那么现在呢,我们能够能不能够在创建这一张表的时候指定它的存储引擎呢?当然是可以的,后面呢,写上一个关键字母叫N静,那通过指定关键字母engine等于我们的什么memory,好通过使用这种方式呢,我就使用了这种存储引擎创建了一张内存表,对,好通过使用什么修语句你能够看到呢,创建这张表的完整的语法格式,好,我们写上我们嘛,Cur it table test1,那么为了使得输出结果更加方便阅读呢?那么后面写上个什么斜线大写的进它通过查看输出信息我们可以看到呢?那么当你创建这一张表的时候,表的存储引擎采用的是我们嘛,Maryry, 因此呢,它就是一张内存表。
22:33
并且呢,自动写的咱们的默认什么编码的支付金,既然它是一张内存表,此时呢,如果说表中存在数据,数据只会保存在当前MYCQL数据库的实例当中,如果说重新启动以后,数据都将会丢失,好,现在呢,咱们往这个表里面,我们去插入相关的数据,先去清下屏啊,In that, 什么in into, 我们什么TEST1好,我们插入两条数据吧,1号名字叫做什么to,对,好,再插入第二条数据,2号名字叫做我们的maryry,此时那你所插入的什么这两条数据只会保存在当前数据库的实例内存里面,那么现在咱们能不能够查询出相关的数据呢?当然是可以的,数据当然目前是存在的。如果说。
23:32
你重新启动MYSQ的实例,那么它会发生什么样的状况呢?我们咱们退出当前的连接,通过使用system control的命令re大下MYCQD的什么服务重新启动,什么MYCQL服务重新启动了以后,咱们再次重新连接到什么MYSQL数据库L,实际上使用入推用户密码是welcome_1连接登录上来以后呢,切换到刚刚的什么使高数据库下,那么查看一下刚刚的表修tables,对,好,现在这一下呢,依然存在刚刚什么TEST1的表,好问一下各位直播间同学,能不能够告诉一下赵老师,现在的这张TEST1的表里面有数据还是没有数据,如果说大家觉得有数据,就请给赵老师呢回复一个有。
24:32
如果说大家觉得没有数据,就请给赵老师呢,回复一个没有好,各位直播间同学能不能够回复一下赵老师刚刚的啊这个问题,那通过这样的一个设定,嗯。我们来给大家介绍一下,到底什么是MYCQ呢,Memory啊,就存储引擎,到底什么是我们的内存表,那么你要确定这张表里面现在有没有数据呢?当然很简单,我们执行一个查询语句是不是就可以了的,我们查询一下CX么新放我了什么TEST1通过查询我们会发现呢,这张表里面此时并不包含任何的数据,为什么呢?因为这张表它使用的就是我们的mme存储引擎创建的什么内存表,那这个这种表的数据嘛,那这个这种表的数据只会保存在数据库时你的内存里面,不支持持久化,一旦重新启动了以后呢,这种表的数据呢将会丢失,因此呢,内存引擎memory呢,通常用于缓存我们的数。
25:46
句,因此讲到这个地方的时候,整个我们在MYSQL里面。第一种比较常见的存储引擎,到底什么是memory存储引擎,那就给大家介绍到这里哈,好,问一下各位直播间同学,关于这个memory存储引擎大家是不是都听明白了,如果说大家都听明白了,就请在咱们的公屏之上,请给赵老师呢回复一个1,或者呢给赵老师呢点一个赞好,咱们接着往下来给大家进行相关的介绍,好,我们接着给大家介绍第二款存储引擎,就是我们的什么myson存储引擎,那什么叫myson呢?他管理非事务表,那么你要讨论什么是非事务表,首先就需要知道什么是我们的事务啊,那我们先给大家介绍一下第三个部分,到底什么叫事物,当你把事物搞明白以后,反过来去理解什么是myem管理非。
26:52
度表呢,自然而然的就明白,那事物呢,是我们在关系型的数据库当中非常重要的一个特征,目前你的low c扣数据库,比如说你的radi,或者说mango DB, 它也支持简单的事物,但是呢,它不能够严格保证事物的acid的属性,因此呢,目前我们的log c口数据库还不能够取代关系型数据库呢,很重要的原因就在于什么,就在于事物的这个问题上,那那么到底什么是事物呢?我们首先给大家下一个最基本的一个定义,它基本的什么概念的,那事物呢?它什么?写下什么是我们的事物啊对,首先大家需要知道那事物呢,它什么?它是由一组DML语句组成啊,写一下它是什么,由一组什么DML语句组成,那刚刚说过什么是DML?
27:52
写一下它的什么全称,全称是我们的datatime many, 什么population poulation language, 好,翻译成中文的话就是我们嘛,我们的数据操作什么操作语言的,而我们在什么DML语句当中只会包含什么操作呢?只会包含我们的插入、更新和删除,那换句话去说,你在执行事务的时候,那它是不包含我们吗的查询语句只包含我们的这三个操作,对,既然它是由一组我们的DML语句组成,它有什么特点,那这一组DML语句要么是插入更新啊,组合,你任意组合都可以啊,都可以的,那么要么都成功,要么都不成功,写下这一组DML句呢,要么呢,什么都成功,要么呢,什么都不成功,那么它不成着I。
28:52
几个成功几个失败的情况,因为呢,事物呢,它具有什么具有原则性,那既然了解到了什么事物的基本的概念以后,接着讨论一下咱们的第二个问题,那么事物的什么事物的特征?好问一下各位直播间同学,你能不能够告诉一下赵老师,事物呢,它具备哪些特征,你能够把它的特征发送到咱们的公屏之上呢?如果说大家都知道,那么就请积极回答一下赵老师的问题,如果说大家不了解,就请在公屏之上。
29:31
请给赵老师呢回复一个0,或者呢给赵老师呢点个赞哈,好,咱们接着往下。来给大家进行相关的介绍,那什么叫事物呢?事物它有四个比较主要的特征,分别是从a cid, 好,我们解释一下什么是a cid啊呢,代表什么呢?代表我们的嘛,原子性C代表什么?代表我们的什么?一致性I代表什么?I代表我们的隔离性D呢,代表咱们的什么?持久代表什么?代表持久性好,了解到什么这四个特征以后,我们来给大家进行一个解释,首先咱们解释一下什么叫原子性啊,原子性表示什么含义呢?表示组成事物的这一组DML语句,那么它们是一个原子单位,不可再分,那么要么都执行成功,要么都执行失败,那这个呢,是一个原子性的表现,那什么叫一致性呢?一致性它表示什么?
30:39
什么事物在结束以后提交叫结束回滚也叫结束,对事物在结束以后,对数据库中的数据应该从应该从一个正确的状态转换到另外的一个什么正确状态,那它不存在一个中间的一个状态,好,这是呢,叫做一致性,那什么叫隔离性呢?隔离性是在实现数的时候呢,最复杂最难的一个,那么解释一下隔离性的一些基本的含义,因为呢,我们的数据库它是支持并发操作,对支持多个客户端并发执行事务操作,那么当你多个事物访问同样数据的时候,我们就需要有一种隔离性,在隔离不同事物在操作同样数据的时候呢,那么他们彼此之间相互带来的影响,那如。
31:39
如果你不考虑隔离性,它就有可能会带来我们的章读不可重复读,还有换读等等这样的问题,好,单独给大家写一个什么笔记,那么因为正因为有了什么,正因为有了我们的什么,这个隔离,隔离性啊,有了我们的什么隔离性以后呢?好,咱们有了隔离性就有了咱们的嘛,就隔离的级别,隔离级别跟隔离性是相关的,那么在不同的什么隔离性,不同的什么隔离级别之下,它有可能会带来我们的么?带来我们的什么脏毒,会带来我们的不可什么重复读命,还有可能会带来我们的么?换毒命等等等等这些问题,这些更加系统知识,当然会放到我们的系统课程里面来给大家进行详细介绍,好们再来给大家介绍最后的一个属性,就是整个事物的什么持久性,那什么叫持久性呢?持久性它就表示。
32:39
当事物提交成功以后,数据库中的数据不会因为宕机,不会因为内存掉电造成数据的丢失,它会被持久化的存储下来,那么这呢就是持久性,但是呢,请大家注意一下,数据库当中,当然我这个地方指的是关系型数据库,那么当你在关系型数据库当中提交一个事物的时候,提交事物的本质是持久性,而持久性具体体现在什么方面呢?具体体现在只要事物操作被成功,写到数据库的日志当中,就算提交成功,这个呢是持久性,它这个什么本质,这句话呢也很重要,那给大家单独的。
33:32
记在咱们的课堂的笔记上,比如说呢,好单独写我们的这地方的第4点,持久性的什么,本质是什么?本质就是把我们事务操作写入日志啊,写一下它是把什么事务操作写入我们的日志,当然对于不同的数据库来说,他可能写的日志有可能会什么有一点点不太一样,比如说你在Oracle里面写什么,你在Oracle里面写的就就是我们的阅度日志,而你在MYQ里面呢,写的就是我们的什么B那个志,那你在PG里面呢,写的就是我们的么wal什么预写日志,那尽管我们在不同的什么数据库里面写的日志各不相同的,但是本子呢,都是把它什么写到我们的日志当中,好给大家记在咱们的课堂笔记笔记上呢,那你的2。
34:32
空写成all写的什么,写的是我们的什么do redo, 什么redo日志对哪里的什么my second写的是什么,我们的be log是指的,而我们的什么这个就这个是二进制日志啊,而你的什么这个p team母写的是什么,我们wa什么寓意写日志的,只要日志写入成功就算什么,就算你的事物提交成功,那现在是持久性的本质。还有从介绍到这个地方时候,赵老师呢,就把到底什么是事给大家做了个什么非常详细介绍,因为呢,事物是我们在关系型数据库里面非常重要的一个特征,好问一下对直播间同学关于事物的基本的概念,大家是不是都听明白了,听明白以后呢,我们接下来呢,将会通过一个事例来看一下。
35:29
如何在我们的MYSQL里面开启失误执行操作,然后提交失误呢?或者说去回滚失误好么?切换到我们的什么实验的环境当中去,那这下面呢,有一张表执行一个我们的修tables,对,那下面有一张EP表,什么叫EP表呢?就是我们的员工表,员工表里面呢,包含一条条的什么员工的数据,那这里里面呢,一共包含有什么14条员工数据,先看一下这个里面5。
36:05
到底包含有个哪些相关的列,好,我们执行一条简单的么查询语句,我们看一下来查询一下我们员工表的什么数据,对,好这个里面呢,一共有什么?14条员工数据里面有8个列,简单解释一下这八个列的含义啊对,那咱们这个地方第一个呢是我们的员工home EP number, 第二是我们员工的名字in,第三个呢是我们员工的职位job,第四个呢是MGRR,就员工的老板,就是老板的员工号是多少?Hard data, 入职日期是s sal呢,Sal月薪commission,奖金,The number, 员工所在部门的部门号。好,了解到数据格式以后,现在呢,我要去完成一个银行转账,那从king的账号上转100块钱,转给我们的Scott,先看一下这两个员工他们。
37:06
目前呢,有多少钱?对,我们查询一下员工的名字,薪水发什么员工表,我们指定一个条件,为了员工名字是什么,一个是我们的K,一个呢是我们我们的,一个是我们的什么高的,那我们的初始的状态上呢,我的K有5000块钱,我的私歌上有3000块钱,我现在我就想要从king的账号上面转100块钱转给我的高特,既然是转账的话,至少呢就分为两步,首先需要扣钱,第二步呢需要执行加钱,扣钱和加钱需要同时成功或者同时失败,否则呢,钱就有可能会丢失,如何保证同时成功或者是同时失败呢?我们就把它放到一个什么事物当中去命,因为我们在MYSQL里面,它需要手动开启失命,我们需。
38:06
把执行什么穿克语句,那当你在MYSQL里面执行这条语句以后,后面的操作都将会是在一个事物当中,就是MYCYQ里面手动开启事物的方式,而我们在什么我们的Oracle里面呢,也能够开启事物,但是呢,Oracle它是属于什么?属于自动开启事,嗯,换句话说,你在Oracle里面呢,就不需要去执行刚刚的那条语句,那么当你在Oracle里面执行一条DML语句的时候,它将会自动开启个事物,那关于Oracle的什么相关知识,赵老师呢,也会放到后续直播课里面单独的来给大家进行介绍,对,好,回到刚刚的命令行上,好,事物开启以后,首先我从kind的。账号上面扣掉100块钱,执行我的什么upum m PBM set, 薪水呢,等于薪水减去100 where呢,员工的名字等于什么呢?等于我的K,扣钱完成以后,我再来执行我的家庭操作,我再执行第二条up的嗯,我的什么我的SCO加上呢,再加上一把键,为了员工名字等于我的什么SSC,好,当你这两步操作都没任何问题的时候,我再来执行我的commit已经提交事5类,刚刚说过提交事物的本质是什么?持久性,它会把事物操作写入MYCYQ的什么B那个日志当中,只要日志写入成功,就算提交操作成功,跟你的数据文件数据本身那没有任何的关系,如果说你在这个操作里面,如果出。
39:58
错了,好,很简单,你只需要在这个地方执行回滚,如B了,就能回回滚掉所有没有提交的书目,好转账完成了以后呢,现在呢,咱们看一下整个操作是不是正常完成一个转账的逻辑,重新的去执行刚刚什么查询语句通过输出的结果,我们这个时候呢,就能看到K变成了什么4900块钱,10个呢变成什么3100块钱,因此他通过这样的一个非常简单的事例,就给大家详细介绍一下,到底什么是事好当你把事物搞明白以后,反过来去理解上面的麦生存述引擎,他管理非事物表,到底什么叫非事物表呢?自然而然的就明白,换句话说,当你使用什么,当你使用麦存储引擎,你所创的一张表,它是不。
40:58
支持我们的事务操作,那这呢就叫做什么非事务表啊写项它什么不支持不支持我们的事务操作,好有了这个基本知识以后,现在我们就使用MY生拿去创建一张非事物表,看看它是如何不支持我们的思路操作的。好回到咱们的命令行的窗口当中,哪一个好,依然使用们刚刚什么看A他table语就嗯创建一张新的表叫test,什么二表结构当然非常的简单,对好这个地方叫什么TIDEC个name,它是一个整数,对好再来第二个,它是一个么,一个word恰的一个字符串长度呢是20,是10个字符的好,如果你不指定存储引擎,默认将会使用EDB,马蒂兰刚刚说过好,手动指定engine选项指定呢,我在创建这。
41:58
一张表的时候,那么所使用的存储引擎是myson的,这样子呢,咱们就创建好了一张非事物表,对好,通过修语句查看下面创建表的完整的语法的格式,对,那这个地方输出选项里面engine表示它是一张什么,它是一张非事物表,对好,现在我们去开启一个事物。
42:24
我们开启个事物来去操作一下我们的这一张表的操作,这表嗯,好开启的时上还刚刚一样,对是大家个什么我们的transaction,好是看行吗?往这张表里面插入两条数据,还是跟刚刚一样啊,Insert呢,In into, 我们的test什么TEST2,对是value them1号,名字叫做我的什么Tom,那么这第一条数据再来第二条数据,嗯,2号么,名字呢,叫做我们的么Mar啊好,执行完成以后,好,我在下面执行一个robotc click什么回滚操作,按照我们通常的理解,回滚完成以后,所有没有提交的事物呢,都会被撤销掉啊好,现在呢,我问一下各位直播间同学,能不能够告诉一下赵老师这张表TEST2里面。
43:24
面有数据还是没有数据?如果说大家觉得有数据,就请给赵老师呢,回复一个有,如果说大家觉得没有数据,就请给赵老师呢,回复一个没有,好,给大家30秒的思考时间,思考完以后请你把答案呢发送到咱们的公屏之上,这张表里面现在有数据还是没有数据?好,给大家30秒的思考的时间,思考完以后,请你把这个正确答案呢发送到公屏之上,如说你觉得有数据,就请给赵老师呢,回复一个有,如果说大家觉得没有数据,就请给赵老师回复一个没有,回复一个没有,那好,咱们。
44:17
给大家再给大家15秒的时间思考一下,思考一下啊。思考完以后呢,咱们接着往下来给大家进行相关的介绍啊,给大家一点时间思考一下啊,思考一下。好,没有同学能够回答一下赵老师的问题吗?帮老师判断一下这张表里面现在到底有没有数据,好,再给大家10秒钟想一下再好,你把这个搞明白以后,那么你就明白到底什么是我们的这个到底什么是我们的麦son准准题,到底什么是我们的非数表,好你要知道这张表里面有数据还是没有数据呢?很简单,只需要去执行一个什么,执行一个查询语句是不是可以了啊,查询一下c select版,我们的新放我们的TEST2,通过查询语句你会发现呢,这张表里面现在依然是有数据的,数据依然是存在,为什么数据还存在呢?明明我们在这个地方已经执行一个什么回滚操作,回滚完成以后数据,数据为什么还存在呢?因为这一张表,TEST2呢,它是张什么表,它是一张非。
45:38
事务表的,既然它是一张非事务表,他就不支持我们的事务操作,因此所有针对这张表的事务的什么提交回滚都是一个无效操作,因此呢,你尽管在这里执行的是一个回滚操作,他依然不能够回滚掉前面的什么插入语句,既然它不能够回滚掉这个超语句,数据呢,依然是保存在这张表当中,因此呢,它不支持我们的事物操作。对好一层讲到了这地方时候,那么大家有没有理解到底什么是我们的myson存储引擎,到底什么是我们的非速标,如果说这个知识点大家都听明白了哈,就请在咱们的公屏之上,请给赵老师呢回复一个1,或者呢给赵老师呢点个赞啊的,看大家是不是都听明白了,好,这个地方,如果说大家这个地方听明白了以后呢,好。
46:38
来看到题目,看到题目对,我们打开咱们题目,看到题目啊,看到咱们的这个题目,好,看一下我们的题目,好,这是我们第4题啊对,如果使用my com, 当你能也能够使用orac code的,当你使用my com来构建数据仓库的时候,推荐使用哪一种存储引擎?刚刚说过目前构建数据仓库的主要方式,那要么是大数据的方式,要么是MPP数据库,当然你也能够使用传统的or my也能够去构建数据仓库,好,这个问题就是如果使用MYC com来构建数据仓库,推荐使用哪一种存储引擎好?ABCD各位直播间同学们,同样给大家30秒的时间思考一下,思考完以后呢,请你把你认为的正确答案发送到我们的公屏之上。
47:38
好,给大家30秒的思考的时间,好,思考完以后请大家积极回答一下赵老师的问题啊,那如果使用mycy com构建我们的数据仓库,只推荐使用哪一种存储引擎好给大家再给大家20秒思考一下,思考一下。
48:05
好,感谢啊,感谢咱们的各位直播间同学啊,好,这个地方咱们就接着往下给你们讲啊,如果说你要使用MYCQ来构建我们的数据仓库,那么推荐使用呢?推荐使用我们的myon存储引擎,因此要正确答案是我们的A选项,因为呢,我们的数据仓库里面刚刚说过,一般呢只执行查询语句,它不一般来说啊,这不绝对啊,不绝对一般呢不支持我们的事务操作,那么基于这些原因推荐使用myon b呢?Myon存储引擎它支持什么,支持大数据的什么高速查询,非常适合构建我们的数据仓库,因此呢,有了这些基本知识以后,正确选项就是我们的A选项,推荐使用myon存储引擎。当然构建数据仓库目前主流方式是使用咱们大数据,或者使用咱们的MPP是么?数据库,对好,现在呢,回到咱们的课堂的笔记上面来看。
49:06
那像我们下面的一种存储引擎,那就是我们的阴楼DB,那这个inno DB呢,它是。你在MYSQL里面创建表的时候,默认使用的存储引擎它的非常类似orac,可什么体系架构,既然它非常类似orac的体系架构呢?因此我们关于这个部分呢,赵老师呢,就会放到后面给大家介绍oracles,后面那么具体给大家进行相关介绍,那么先简单介绍一下我们的inno DB存储引擎,那inno DB呢,存储引擎它里面呢,包含了几个组成的部分,首先第一个部分大家了了解一下要2第一个呢是我们怎么存储结构,那第二个部分呢,是它的什么?它的内程结构,那第三个部分呢,是我们么线程结构,如果是orlu就是进程结构,Mycylu是基于线程的啊mycy class线程结构,如果是or就是进程结构,因此呢,这三个部分共同组成了MYCYQ呢,In no DB存储。
50:13
定亲,而在这三个结构里面,当然最核心也是最重要的呢,就是它的存储结构,存储结构具体的分两种,然后呢,一种是我们的逻辑存储结构,另外的一种呢是什么?物理存储结构,后面呢,赵老师会详细给大家介绍逻辑存储结构里面包含哪一些,物理存储结构里面又包含哪些,但是呢,接下来呢,赵老师呢,说的这句话那就非常的重要,用红色字母。给大家记在咱们的课堂笔记上哪一句话呢?只要是数据库啊,不管你是关系型数据库还是low c口数据库都是什么,都是通过什么,通过逻辑存储结构来干嘛呢?来管理我们的物理存储结构,好这句话呢,请直播间的各位同学一定都需要记住,那么只要是数据库都是通过逻辑存储结构来去管理物理存储结构,后面呢,赵次给赵老师呢,给大家讲到or时候来详细给大家介绍逻辑存储结构里面包含哪一些,物理存储结构里面又包含哪一些,因此今天晚上呢,关于window DB这块呢,先给大家开个头,对,那实际上有了这些基本知识以后啊,相信大家对我们的什么,对我们的MYCYQ的呢存储。
51:47
引擎应该有了一个什么,进一步的了解,存储引擎是我们在学习这个MYSQL的时候最重要的一个部分,对他既然把这一部分介绍完以后,再来给大家简单补充一点点知识,那目前呢,国产的数据库呢,也得到了广泛应用,对,因此呢,大家后续。
52:08
啊,赵老师呢,不是叫怎么说呢,赵老师呢,也不赵老师呢不是叫运维的啊,但赵老师呢,赵老师的技术方向呢,主要是这几个方向看一下,主要是我的主要是大数据方向,数据库方向和容器方向,那这个里面呢,尤其是大数据方向,既涉及到运维,也涉及到开发,因此呢,大家如果以后呢,你要从事大数据去从大数据呢,你就要选做是做大数据开发还是做大数据运维,但对于数据库来说的话,那更多的是我们的运维的一些操作啊运维,比如说部署啊,管理啊,调优备份等等啊,这样对于数据库是运维,对大对,但是对于大数据来说呢,既有开发也有运维啊对好,现在我们回到咱们的课堂的比例上,稍微呢,再给大家补充一点点的这个知识,我们对,因为呢,把MY介绍完以后,那大家实际上就能够去学习一些国产数据库了,那一大家目前呢,这个国产的。
53:09
什么数据库呢,也得到什么广泛应用,因此呢,大家后续如果说你想去从事数据库啊,从事这个DB的工作,除了需要掌握这个传统的这个or bycy com PG以外呢,还需要去掌握一些国产的数据库,好问一下各位直播间同学,你能不能够。告诉一下赵老师,在国产数据库当中,哪些国产数据库兼容我们的MYSQL啊,如果说大家知道了,你能不能够把这几款国产数据库的名字发送到咱们的多公屏之上,当然国产数据库呢,有很多很多,那其中哪一些兼容我们的MYSQL呢?在当中给大家写个笔记本国产数据库当中兼容MYSQL当中有以下的这些,比如说有我们的泰迪病,对,还有我们的嘛,O心贝什,有我们的O心贝斯,对就这等等的,主要主要是这主要我我就写主要的这两个,但除了这两个以外呢,还有一些其他的什么国产数据库呢,也兼容MYSQ,好,简单说一下这两个,那泰迪币呢和O型贝,嗯,这两个呢,都是属于什么?都是属于这个国产的这个分布式的数据库,既然他们都。
54:31
不是一个分布式的数据库,他们就是一个什么,就是一个集群,那么你在TTB里面它完全兼容MYSQL,因此你操作MYCL跟操作太B呢,基本上是完全一样的,包新based对象O新based里面,当你去创建MYCQL什么租户的时候,它兼容MYCYQL租户呢,是我们在欧新贝斯里面非常重要的一个内容,那一个MYCYQ租户就等同于你在ocean贝里面创建好了一个MYSQL实力,Ocean贝呢,通过使用这种方式来去支持我们的MYCQL的运营模式。那关于国产数据库的更多的知识,赵老师呢,当然也会放到后续直播课里面单独给大家进行介绍,比如说我们会给大家介绍TDY,会给大家介绍ocean贝达梦p ocean贝达梦。
55:31
达梦金仓等等等等等,那今天晚上重点呢,都是给大家介绍我们的麦CYQL,那这些就是与直播间的时间毕竟有限,我们book可能都给大家讲到,因此呢,我在直播间的下方推荐一门课程给大家,还有这门课程啊,那叫MYCYQL数据库进阶实战。
我来说两句