这一节呢,我们来学习此查询和连接,此查询和连接呢,我们都讲了,但是有一些查询呢,既可以用此查询写,也可以用连接写,这两种方法呢,经常可以相互转换。我们来看一些例子, 我们来看一个例子,我们这个 c 客呢,是查询在二楼办公的员工的姓名,那这里呢是,嗯,从员工表里面查出这个部门号印啊,在这个此查询里面呢,查出这个, 呃,在二楼办公的部门号。那这是使用此查询用印的一个例子啊,那像这个 secre, 我们怎么把它改成用连接的方式来查询呢?我们可以把这个员工表和部门表连起来,然后呢判断他这个, 呃,办公的位置在二楼啊,我们可以这样写。 好,我们这样执行一下啊,效果呢?是一样啊,和前面的这个 in 呢,它的效果是一样的。现在我们来继续看啊,如果他要查询这个不在二楼办公的员工啊,我们用 note in 啊,不在二楼办公的 not in, 这是查出来不在二楼办公的员工,一共有六条记录,那这个怎么办呢?那我们就是说他的 location 不等于二楼啊。 好,我们看一下,效果也是一样的,这是,呃, 这是那个只查询和连接 secre 语句转换的一个例子, 我们来看查询每个部门工资最高的员工。我们看这个例子,我们先用 in 来写一下, 用印写呢,就是这样啊,部门号和工资号印啊,印符合什么条件呢?就是符合这个部门号和部门最大工资啊,用 grouby 来 列出部门号和部门最大的工资。然后呢?呃,部门号和工资印这个啊,因为它不止一个部门嘛,那这里面 大家要学到一个新的知识点,就是印呢,我们不光是可以针对啊,一个值,也可以针对一组值啊,像这里就是两个值,部门号和薪水,那这里面我们就可以列出啊, 一二三三个部门的三个员工啊,这三个员工工资是最高的,那我们再看一看,怎么样用这个呃连接的方式来写呢? 连接的我们就要有两个表,那第一个表呢,我们就是把它设为 a 表, a 点星号,这个呢就是我们的员工表 employs, 把它设为 a 表,然后呢进行连接,连接哪个表呢?连接这样的一个临时表,连接像这个表啊, 那这个表里面呢,我们把这个字段的呃,把它设一个别名啊, 查询出他的每个部门的最高的工资 啊,这个呢设为 b 表,那么连接的条件呢?就是 a 点 啊,两个部门号相等,然后呢他的这个 a 表的这个工资等于 b 表的最高工资,查询出来的最高工资。好,我们看一下哈,这个效果呢,和这一样啊, 前面呢是用这个印来的,这个呢是用连接来的,那这个里面的一个知识点呢,就是你这一个表,我们可以把它放在这个连接里面,作为一个连接的对象啊,虽然这个表是个 啊自查询语句生存的表,我们把它定义为表 b 哈,这是 employee, 我们定义为表 a, a 和 b 进行连接,最后得出来每个部门的最高的工资,最高的员工。 现在我们来看此查询和连接的练习啊,这里是用 in 找出没有换过部门的员工的姓名的 c 口语, 那这个 secret 是用 in 来,是用 in 啊,准确的说是用 lot in 来写的,那么这个 not in 我们怎么样把它改成连接的方式呢? 啊?这里是今这一节的练习,那给大家给大家的提示呢,就是可以使用 left 卷啊, left 卷可以使用左连接啊,来完成这个连接。答案键讲义的下一页。
粉丝2142获赞3639

写前协议解决了什么问题?数据快还没写入此盘就宕机?如果此时力度日制已经写入到此盘了,实力重新启动的时候数据依然可以恢复。然后就有个疑问了,那数据库为什么不马上写数据快到此盘了, 而是选择先写一度日制?这里重点还是大量的数据块更改都马上写入次盘,会对性能产生影响。接下来利用动态效果展示写前协议的工作流程,这里用户发起哦呸请求, 然后 burr cash 会标记数据块为脏块, re do burr 产生日制。接下来就是 dapper 进程和 leger 进程就绪, 这里 leger 进程会优先写入 readopfer 日制到词盘的 readopfer 文件,此时的 deborah 在 等待最佳时机将数据块写入词盘的数据文件里, 此时整个工作流程展示完毕,谢谢观看。

这个 skill 可以 让巴菲特直接变成你的私人助理,配置好后,在 ai 里输入任何一只股票,他就会用巴菲特的思维结合专业的分析,最终给你输出一份机构级的深度报告。这跟那些针对别人说话风格的 skill 完全不一样,使用起来也非常简单,直接看下怎么操作吧。 首先我们打开 github, 在 里面输入这个叫 buffet oracle analysis 的 项目,它的中文名叫巴菲特神域分析师。然后我们可以看一下这个项目的介绍, 你未给他任何一个公司的名称或者股票代码,他都将输出这些维度的专业分析,底下是他的一些分析流,让我们直接上手开始操作吧。 然后回到上面,我们直接点击这个绿色的 code, 然后来下载它的压缩包,把它下载到桌面,然后我们回到 cloud, 这里我建议大家直接创建一个 project, 方便于后期的使用。 我们直接点击 new project, 然后名字里直接叫巴菲特分析师。底下这个 what are you trying to achieve。 我 们可以直接让 cloud 给我们写一段 md 文档,复制粘贴进去,然后创建项目。创建完之后,我们直接把刚刚下载的压缩文件发给他,让他学习这个 skill, 然后可以看到他解压分析,学习总结。等他安装好了以后,我们也不多废话,直接让他开始分析。就以腾讯为例子,我们可以看到他在分析,他在解锁。下面我直接给大家看这个分析过程的醇香版,非常牛逼,不需要多余的解释。 然后我们可以回头看一下他这个分析,他列出了一个非常详细的看板,对于他的一些收入,毛利率,包括 roe 都是非常清晰的列在上面,以及他的护城河分析,多维度估值汇总,包括巴菲特的分析卡,对他进行了一个评分。 下面是风险矩阵,投资决策,在多少价位的时候买入多少的市场比例,我觉得还是非常有价值的,大家如果有什么感兴趣的股票也可以去搜一下。 最后这个项目还在持续的迭代更新中,未来肯定有更多功能有待开发,那么今天的视频就到这里,希望大家喜欢,这里是 bryce。

我把订阅了很久的拆的 gpt 给停了,现在全面转向真难了。这段时间深度用下来,发现它真的是越用越有啊,我现在已经离不开它了,这次就把我实测过九个超级实用的方法 整理出来分享给大家。内容确实有点多,我设置了进度条,大家可以根据自己的需求拖动,要是觉得内容对你有帮助,可以点赞收藏支持下。那咱们直接开始 一个用法,是表格分析。直接让 jimmy 一 件事的表格已经不稀奇了,当有一个更深度的用法,我们可以把甲方、合作方甚至领导发给我们的表格内容直接上传到 jimmy, 让他分析这个表格想表达的重点、 风险点和趋势。然后我们还可以让他基于这些信息提供下一步的初试方案。拿着这份方案,你就能直接找甲方沟通了,他不一定是最终稿,但绝对是能拿得出手的初稿。 第二个是 ppt, 让 jimmy 生成 ppt 有 好几种方式,比如在多多报过 im 生成的 ppt 页面,有时候自体会扭曲,我就把它传给 jimmy 修正,提高清晰度,这样再导回到 wps 编辑就方便多了。或者可以使用它的刊物词功能, 结合上传的资料,用提示词指定风格和要求,生成在线可编辑的 ppt。 我 们可以选中某一部分让它修改, 或者把它导入 google slides, 也很方便改。这又解决了像之前 notebook i m 无法修改还得转来转去的问题。而且它生成的风格跟 notebook i m 还是很不一样的。 jimmya 的 更偏向互联网,比较灵活有创意。 notebook i m 显得更专业,擅长处理复杂文本,给人一种学术感。更重要的是啊, jimmya ppt 的 信息源是你输入的题词、上传的文件,还有它强大的通用知识。 notebook 二 m 严格遵循你上传的原文件,不会多说一个字。所以如果你更看重准确度,那就用 notebook 二 m。 反之,那就选 jimmy。 你 还可以让 jimmy 生成内容大纲,设计每一页的题词,统一好风格和调性,再让 nasubota 生成对应的页面,出现错误就让它改,直到满意为止。 我们用 ai, 百分之八十的场景都是跟他打字对话,但其实有一个点很多人容易忽略。他可以优化提示词。当我们想生成一张图片或一个视频,可以把原始的想法发给 jimmy, 让他补充写一个更专业、更完整的提示词。 如果我们想不到啥好点子,也可以请他给几个方向选择,然后把优化后的提置词交给生图或视频生成工具。如果生成的效果不理想,可以再告诉 jimmy 哪里不好,让他接着改。那通过这样一步步调整,我们就不需要自己从头到尾写完整的提置词。 因为一个完整的 ai 生图或视频这个词通常很长,需要花费很多的时间和精力。只要有一个基础的框架思维让 jason 帮我们实现,我觉得就挺好。这个功能非常适合设计师、美工、修图师以及 ai 视频创作者们。第四个,我建议大家都去使用一下它的 ai 词功能。 这个就相当于谷歌版的 gps。 我 们平时用 gps 同样的需求,每次都要重新开始重复背景信息、目的和要求。但是在 games 里再也不需要这么麻烦了,你可以给他设定角色,规定回复的语气,这样就能把他从一个通用的 ai 变成一个懂你的专家模式。 开箱就能用。让他写代码,或者做一些视频策划的选题文案,甚至修改简历辅助学习,这些都是可以的。 如果你有长期性的需求,像图文笔记、视频脚本、营销文案,都可以去设置一个。 james 最近 notebook im 又推出了一个 data table, 也就是数据表功能,可以把零散的数据生成系统化的表格。但是 到这一步还远远不够。我们可以用 jamila 的 深度研究生成分析报告,比如月度、年度销售复盘或者市场营销的活动总结,需要细化的话,还可以生成数据看板、 业绩分析,这样我们就可以洞察行业趋势,你在做工作汇报时就会比较轻松。平时我们会遇到一些非常小的需求,比如抠图、去水印、美颜、分国画、滤镜。 以前我们可能得到处找某个小程序和工具,还得再看十秒或三十秒的广告,要么就是充会员。但现在你可以直接让 jimmy 拿手搓一个在线小工具,上传图片后,他就可以帮你去除水印, 把书面文字转成手写体等等,这些看似不起眼的小需求它都能满足。这就是自然语言编程,你负责下指令, ai 负责写代码,那因为它是一个多模态模型, 能够解读图片类的信息。下面这两种用法非常适合电商行业,那像电商详情页,你可以让 jimmy 分 析自家产品的核心卖点、市场痛点、文案风格、 信心力度和优化建议,也可以把行业爆款的主图传上去,分析爆款的底层逻辑、 视觉、营销洞察,再让他提供一个弯道超车的解决方案。他不一定完全正确,但能提供一个新的思路和视角,帮助我们学习市面上的流行趋势或者头部竞品的打法。视频分析是真伪版的杀手锏,也是最容易翻车的。 官方的说法是, gmail 三 flash 有 一百万的上下文,能处理一小时内的视频。当我实测下来,发现,如果你直接放一个二十二分钟的一个 top 链接,它能分析视频的转场次数、时间点、转场方式,但也只能分析前一分半。 当然,这种情况很可能是视频的帧率和分辨率太高,信息量爆炸, ai 直接偷懒躺平了。如果你上传的是短视频或者直播切片,他还能分析主播怎么巧妙的勾起消费者的购买欲,怎么用语速、音量和语调控制节奏, 从展示到引导下单的逻辑闭环。你还可以指定需求,比如场景布置、灯光驻波表现等等,这些它都能分析。有朋友可能会好奇呢,豆豆 i m 也能分析视频,那它里的区别是啥? 首先, notebook i m 更多的是总结文本内容,它分析不了视觉和音频,而这些 jimmy 都可以做到。不过说实话,视频相对于图文和文字来说更高级,处理的复杂度也就更高。 jimmy 在 分析视频这块效果不太稳定,没有办法做到一百分的状态。 它取决于你上传视频的帧率、文件大小,还有长序列处理中的注意力分配问题。当视频语言数据过载, ai 可能就会忽略画面、视觉、音频这些难啃的内容,优先分析字幕信息。另外,如果你上传的链接时长特别长,文件体积又大,帧率呢?它确实 hold 不 住, 所以最好是输入详细一点提示词,告诉他你能在第几分钟看到什么内容,或者要求他分析主播出现了多少秒,产品出现了多少次。记得降低视频的清晰度哦。把四 k 转成幺零八零 p 或七百二 p, 这样证明呢,消化的会更快。 作为一个 ai 博主,主力工作都是用电脑。在使用 jimmy 的 时候,我也很习惯用网页端,但随着对它的依赖越来越深,用 app 的 频率也在增加。如果你用手机处理工作比较多,我也建议充分使用 app 端。工作日遇到难受或想吐槽的时候,我们习惯约上饭搭子下楼聊一聊。 但吐槽归吐槽,没有办法从根本上解决问题。但是当你和 jimmy 聊上几句,他就真的能教你怎么跟强势的领导打交道,怎么应对同事的甩锅。周末了,出去走一走, 打开摄像头,他能识别公园里的花叫什么名字,有什么不会修的小东西,也可以直接让他指导修复一下。如果你下班后想学习英语,也可以把它调教成你的私人外教。我觉得这面真的是一个宝藏工具啊。我们每个人都可以根据自己的职业或专业去深度的使用它, 但是它不是万能的,它有幻觉,它不稳定。所以我们要保持清醒,保持理性。那我们今天分享就到这里,我们下期再见。

今天来讲一下什么是优化器,我这里将优化器比喻成 gps, 这里有辆小汽车 select 要到达目的地机场,导航开始计算生成路线,这里相当于地图。 简单解析一下这几个信息, numrose 代表占用的数据,快数, index 代表缩影 histogram 直方图, 这里的绿色路线代表高速。 这里导航给出了高效的路线,很快就执行完毕。接下来的案例就是,当你的地图没有及时更新,导致优化器选择了错的路线,选择了国道,所以效率变慢。 到这里,优化器的工作流程展示完毕,谢谢观看。

我说在这个方向上去跟 oracle 拼的,那就是太难了, oracle 自己做起来更得天独厚。 我们从 d v 的 视角来看,我们非常赞赏的就是 oracle 的 叫 a w r 这样一个特性。那其实呢,我这本书里有写这个技术是怎么诞生的, 那当一个系统在持续运行的时候,如果我们想去了解他的运行状况怎么办呢?在现实世界里,那你要去探测 啊,你要通过一些这个传感器,对吧?你去探测在数据库里是一样的,你要加了探针去采集出数据。所以呢,当奥尔虎到了第七版的时候,他在数据库里其实 放置了大量的这种探针,就提供了各种各样的指标,有一个维度,我们说叫等待事件,在奥尔克二十三版的时候就有两千一百多,也就是这么多探针来探测数据库的状况, 通过这个状况呢,你就可以了解这个数据库的运行状况啊,他的状态工作的是否健康。 oracle 创造出这样一个东西,就是持续不断的去把数据库的运行信息记录下来,所以他的名字后来叫做 aw, 要自动的工作负债库,非常平时的一个名字, 也许他当时也没有想到今天能做什么,但是我们说事实上直到今天,奥尔口的在这特性的演进方向上是独步天下的,是做的最好。那么有了这样一个东西呢? ai 时代来了, 奥尔口做了什么?所以他在他的不管是二十三 ai 还是二十六 ai 这个版本上就推出了这样的一个能力,大家看到叫 aw 点 ai, 所以他今天有了这样一个能力,你可以随时跟他的这个工具来对话了,你帮我看一看这个时段早上九点到十点数据库的性能是怎么样的,你帮我分析一下,他就会给你呈现一个报告你,你把这个数据跟上周的对比一下, 给你呈现一个报告,他能够通过自然语言的方式跟你进行交互和互动了,你 p v 不 需要去执行复杂的脚本, 甚至可以不是偶尔的 dba, 那 ai 的 能力越来越深入,其实通过这样的数据,它对于问题的诊断也可以做到非常的高效率的智能。 那这里是它的 oem 的 ai, 然后它有的工具叫 askem, 就是 你可以问它啊,我的这个指标代表着什么,有什么样的问题,然后你对执行计划进行分析, 所以他这一侧所展示的就是,哎,我这个执行计划的这一行走了全秒扫描啊, table access 户 啊,应该根据数据的分布去看是不是能够有更合适的。所以其实原来呃,云和墨所做的我们的 ccloud 里边的 ccloud 审核能力,智能建议能力也是这样做的, 它本身是呃在数据库之外的,可以去对数据库进行观察,进行分析。那当然 oracle 自己做起来更得天独厚,今天它用 ai 能力把这些实现出来, 那还有 oracle 提供了就是有一段时间的一个特性叫 select ai 啊,就是将自然语言跟数据库交互变成了现实啊,你通过 select ai 在 前面做一个提示词,你后边就可以说一段自然语言的话,你告诉我这个公司薪水最高的人是谁, 把他们查询出来,建议作出反馈,那这也是向 ai 方向的路口的一个增强,它不是什么新鲜事情了,今天很多跟数据库 chat 能力的工具都有这样的实现。


open call 速查命令安排 new 如果你的小龙虾响应变慢,使用它之后整体提速会快很多。 usage tokens 给每个响应都输入和输出 tokens 的 统计,可直观监控 tokens 的 用量。 reasoning 展示推理过程,可以更好的了解小龙虾的思考过程。 think hi 龙虾总共有四个思考等级,根据你选用的多个模型,用处是,如果接下来的任务比较复杂,可以逐步调高思考等级。龙虾会更仔细地分析问题,检查逻辑,达到更好的回答效果。 model 模型切换只能切换你在配置文件中显示的模型,针对不同的问题复杂程度去切换不同的模型进行执行,节省托肯消耗。 stop 及时止损错误命令或者临时终端反应。 restart 重启网关,修改配置文件后快速重启。 openclaw 大家呢?点点关注,下期呢?我来介绍一下,如果你的 open 可乐小龙虾遇到了一些问题,作为不是专业人士的人,如何去解决自己的小龙虾的问题呢?大家关注点起来,我们下期继续讲解,咱们下期再见。

oracle 数据库,又名 oracle 二、 d b m s。 它是甲骨文公司的一款关系型数据库管理系统,它适用于各类大、中小危机环境,具有系统可移植性好、使用方便、功能强的特点。了解到了基本的知识后,下面详细讨论一下 oracle 的 体系架构。 oracle 的 体系架构包含三个部分,分别是内存结构、进程结构和存储结构。首先讨论一下内存结构, s g a 是 指系统管理局的缩写,由一组共享的内存结构组成。 s g a 被 oracle 数据库中所有的服务器进程共享。 p g a 是 指程序管理局的缩写。 p g a 是 包含了某个 oracle 服务器进程的数据, 其控制信息的内存区域。换句话说,数据库中的每个服务器进程都具有属于自己的 pga。 接着讨论一下进程结构。 c 蒙是系统监视器进程, 它负责 overclock 数据库实力的启动,并在实力启动时执行恢复。 c 蒙是 overclock 最核心的进程。 p 们是进程监视器进程, 负责在用户进程失败时执行进程的恢复,同时还负责清除数据库缓冲区中的脏数据和释放该用户进程占用的资源。 d b w i 是 数据库写进程,他负责将缓冲区中的数据写进内存。 l g w r 是 日制写进程, 他负责管理重做日制缓冲区,将重做日制缓冲区条目写入内存上的重做日制文件中。 c k p t 是 检查点进程, 负责唤醒 d b w n 进程,将缓冲区中的脏数据写入数据文件中。 l c n 是 规章进程,当 oracle 数据库处于规章模式时,该进程会将联机重做日制文件复制到指定的存储设备,从而保证 oracle 能够维护 所有的重做日制信息,以便在执行数据库恢复的时候能够执行数据库的完全恢复。而 e、 c o 是 恢复器进程,它是用于分布式数据库配置的进程,可以自动解决涉及分布式事务处理的故障。有一些其他进程,这里就不一一介绍了。最后讨论一下存储结构, 它分为逻辑存储结构和物理存储结构。先来看看逻辑存储结构中包含的内容。数据库是 oracle 中最大的逻辑单元,它是按照数据结构来组织、存储和管理数据的仓库表, 所以存储过程、触发器等都被包含在了 oracle 的 数据库中。表空间是数据库的逻辑划分,一个表空间只能属于一个数据库,表空间对应一个或多个数据文件。段是分配空间时的一个逻辑结构,而最常用的段就是表段和锁引段。表空间由段组成, 区是分配存储空间的逻辑单位,它由连续数据块所组成。数据块是最小逻辑存储单位,它表示一次 o 读写的数据量大小,默认数据块的大小为八 k。 再来看看物理存储结构中包含的内容,数据文件,它是真正存放数据库数据的文件,一个数据文件就是一个硬盘上的文件。重做日记,它记录了数据库的变化,当 over 数据库产生异常时, 可以使用重做日记来恢复数据。控制文件,一个数据库至少要有一个控制文件,控制文件中存放了 over 数据库的物理结构信息,如 数据文件和重做日记的路径归到日记,它是联机重做日记文件的副本,也记录了对数据库改变的历史。参数文件,这里通常情况指的是初步编制文件,数据库启动的时候会读取参数文件。 oracle 有 两种参数文件, p file 和 s p file。 oracle 九 i 版本之后,默认采用了 s p file 的 参数文件。告警日期,它记录了错误信息以及警告信息。 因此,当 oracle 出现任何问题的时候,首先就应当检查告警日制文件。跟踪文件,每个服务器进程都有跟踪文件, 当数据库运行中出现问题时,通过查看跟踪文件中的内容,可以帮助诊断 oracle 数据库的问题。备份文件, 它是在数据库发生借质损坏的时候,用来还原并执行恢复数据的文件。现在你已经知道 oracle 的 体系架构了,那你知道如何使用它们吗?欢迎评论区留言讨论,好了,记得点加号关注赵余强老师。

我今天考古了一个老项目里的报表行转列,写了满屏的 some case when, 密密麻麻是我的自尊。其实这种场景, oracle 早就给我们准备好语法了。 pivot 和 un pivot。 pivot 是 什么? 就是把原来一行一行的数据转成一列一列展示。比如你原来是一月一行二月一行,用 pivot 就 能直接变成一月列。二月列这玩意儿天生就是干报表、统计交叉表的。那 un pivot 呢? 反过来把多列再摊回多行,前端 excel 报表给你整成一堆月份列,你想恢复成标准明细结构,就用它。 所以问题来了,明明一句 paper 能解决的事,为什么有人非要手搓十几段 some case 问?因为大家对老写法太熟了,熟到明知道又长又丑,还是舍不得放手。就像有些代码, 能封装,能附用,但人偏要复制十八遍,主打一个能用就行。 some case when 不是 不能写,上班这么累,能少写的时候就别累自己啦。

本节课我们来讨论一下 oracle 的 多租户容器数据库。 oracle 数据库从十二 c 版本开始支持多租户容器数据库,下面我们详细讨论一下它的体系架构。 oracle 多住户容器数据库简称 cdb, 全称是 oracle multi tenant container database。 在 一个 cdb 环境中,首先会包含一个根数据库 root, 它将存储整个 cdb 的 原信息,一般不用于常规的业务操作。 基于根数据库便可创建多个 pdb 数据库。 pdb 的 全称是 plugable database, 即可插拔的数据库。从使用方法上看, p t p m 就是 一个普通的 oracle 数据库,它也是用于执行常规业务操作的数据库。 c 的 数据库是创建 p t p 的 种子数据库,从表现形式上看, 它也是一个 p t b。 通过执行嗅 p t b s 语句,可以在一个 c t b 环境中查看所有的 p t b。 从输出的信息可以看出,种子数据库 seed 是 只读的。现在你已经知道什么是 oracle 的 多租户容器数据库了, 那你知道如何在 oracle 中创建 cdb 和 pdb 吗?请查看赵老师发表的相应文章。好了,记得点加号关注赵一强老师!

本节课我们来讨论一下迪卡耳机与多表查询。迪卡耳机是多表查询的理论基础,我在想要不要给你讲迪卡耳机数学上的定义,好吧,还是讲一下吧。看到这个数学定义,屏幕前的你是不是有点头大?其实我也有一点,还是举个例子吧。 这里有两个集合,分别表示部门集合和员工集合,那么他们的迪卡耳机就是所有可能的部门员工组合。你 是不是还是不明白什么是迪卡耳机?来看一下具体的过程吧。部门表由两行两列组成,两个列分别表示部门号和部门名称。员工表由三行三列组成,员工表的三个列分别表示 员工号、姓名和所在部门的部门号。那么可以把这两张表的迪卡耳机看成一张大表,用乘号表示该大表的列数等于部门表和员工表的列数相加,而行数等于 门表和员工表的行数相乘。以图中的数据为例,得到的迪卡尔机将有五个列和六行数据。部门表的第一条记录和员工表中的所有记录组合生成迪卡尔机中的前三行数据。而部门表的第二条记录和员工表中的所有记录组合生成迪卡尔机中的后三行数据。 生成的迪卡耳机中并不一定每条数据都是正确的,因此需要使用连接条件来避免使用迪卡耳机中的所有记录。在进行多表查询的时候,连接条件的个数与表的个数有一个对应关系,连接条件至少有 n 减一个,这里的 n 表示表的个数。 根据连接条件的不同,可以把多表查询划分成以下几种类型,等值链接、不等值连接、外连接和自连接。现在你已经知道迪卡尔机与多表查询的关系了,那你知道上面提到的几种多表查询有什么区别吗?欢迎评论区留言讨论,好了,记得点加号关注赵余强老师。

咱们现在的时间是中午的十二点半,那么咱们就开始今天中午的这个学习,那么今天中午呢,咱们来给大家介绍一下 oracle 的 体系架构, 那么体系架构呢,是我们在学习 oracle 的 时候最重要的一个部分,因为呢,只有把这个 oracle 的 体系架构掌握以后呢,后面咱们去安装部署、 管理和维护备份、恢复、诊断、优化,包括搭建集群,它都是以这个体系架构为基础。因此呢,咱们希望通过今天中午的这直播,能够为大家后续深入学习 oracle 呢奠定个基础。 好,既然咱们中午呢要学习一下 oracle, 说一下,如果说大家后续我们要系统的去学习数据库的知识,不管你是学习关系型数据库,还是学习我们的 oracle, 那 么赵老师呢,强烈建议大家一定从我们的 oracle 开始学起, 因为呢, oracle 是 所有数据库的当中功能最强大,结构最复杂的一个 啊,当你把这 oracle 掌握以后呢,你再去学习其他的数据库,那么就会非常简单,很容易。好,这句话我再重复一遍,如果说大家后续你要系统地去学习有关数据库的知识, 不管是关系型数据库还是我们的 lucid, 赵老师呢,强烈建议大家一定从 oracle 开始学习好。大家之前哈听过赵老师的课程 应该都知道,赵老师呢在上课的这个过程当中,会给大家记录一个课堂的笔记, 通过记录课堂笔记的这种方式,我们会把课程里面啊,就今天中午呢这个比较重要的知识给大家记录下来, 因此呢,咱们今天中午呢,也会按照同样的方式来给大家记录一个笔记。首先咱们需要对 关系型数据库的一些基本知识要有一个基本了解,那么比如说哈,比如说你的什么,你的这个 oracle 也好,对 mexico 也好, ping 机也好,还有咱们很多什么国产数据库,比如说你的高斯啊,对你的什么,这个 tidbit 等等,这些都是属于关系型的什么数据库。因此呢,咱们就需要对 关系型数据库的一些基本知识要有一个基本的了解,对到底什么是关系型数据库,它又有哪些特点? 那么了解到了基本知识以后,重点讨论一下 oracle 什么体系架构。刚刚提到 oracle 体系架构呢,是我们在学习 oracle 的 时候最重要的一个部分,那么大家学习 oracle 的 时候,那么第一步呢,就需要学习到底什么是它的体系架构。 通过咱们稍后的介绍,大家会了解到整个的 oracle 的 体系架构,它包含了三个组成部分, 首先第一个部分是我们的什么呢?存储结构,然后呢第二个部分是我们的进程结构, 然后呢第三个部分是我们的内存结构。好,这三个部分共同组成了 oracle 的 体系架构。 而在这三个结构里面呢,最重要的就是它的存储结构, oracle 通过存储结构 拿去读写数据存储结构,它具体来说呢,又分为两种不同的存储结构,一种是我们的什么呢?逻辑存储结构,然后呢第二种是我们的什么呢?物理存储结构。稍后呢,咱们就需要来讨论 逻辑存储结构里面包含哪一些?物理存储结构里面又包含哪一些?但是呢,赵老师接下来说的这句话,那么就比较重要,我用红色字母给大家写在咱们的课堂笔记上,哪句话呢?只要是数据库啊, 不管你是关系型的数据库,还是我们的逻辑课,只要是数据库, 他都是什么呢?通过我们的逻辑存储结构来管理我们的物理存储结构,那么这一句话请直播间的各位同学一定都需要记住啊,重复一遍,只要是数据库,都是通过逻辑存储结构 来去管理我们的物理存储结构。稍后呢,咱们来给大家进行详细的介绍。好,因此介绍到这个地方的时候,赵老师呢就带着大家去梳理了一下啊,我们在今天中午呢,将会学习到哪些知识?好,咱们现在 咱们就按照这样的个顺序来给大家进行相关的介绍。首先看一下关系型数据库的基本知识。好的地方,曹老师呢就需要首先问大家一个问题,好,各位直播间同学 能不能够首先告诉一下赵老师,到底什么是我们的关系型的数据库?那么你的 oracle, my sql 都是属于关系型数据库,大家每天都可能会在使用,但是你是不是真的清楚它的基本概念和定义呢? 如果说大家都知道呢,就请把它的基本的概念和定义发送到咱们的公屏之上,如果说大家不了解的话, 就请在我们的公屏之上回复一个零,或者给张老师呢点一个赞。好,咱们接着往下 来给大家进行相关的介绍。那到底什么是我们的关系型的数据库呢?它最基本的一个定义是,它是基于我们的什么这个关系模型? 好,咱们基于关系模型,我们所提出来的一种数据库就叫做关系型的数据库。那么接着再往下面去讨论,什么又叫关系模型呢? 关系模型的本质是我们使用一张什么呢?二维表的行和列的方式 来存储数据的模型,就叫做关系模型。那换句话去说,在你的这个什么 oracle 里面, my sql 里面等等等等,那它们最终存储数据的模型 都是这种二维表的行和列,这个是我们的关系型的数据库,它最基本的一个定义。那么大家需要知道,那么我们在这个关系型的数据库当中, 我们去设计表结构的时候,那么他们需要去干嘛呢?遵循我们的范式。那么什么叫遵循范式呢?那么你拿到一个需求的时候,先根据这样的一个需求 设计出它的什么呢?一二模型,也就是实体关系模型,那么有了一二模型以后,再抽象成是关系模型,然后呢再根据我们的范式, 比如说我们的第一范式,我们的第二范式,我们的第三范式,最终设计出关系型数据库的表结构。对,这个呢是我们在关系型的数据库当中 一般的一个什么一个做法好,这地方呢?赵老师呢,可能又需要问大家一个问题,就是说我们在关系型的数据库当中,为什么要遵循范式? 那么你遵循犯事以后,你有哪些优点?那么你又有哪些缺点?好,各位直播间同学,首先你能够把这个犯事的优点 发送到咱们的公屏之上吗?如果说大家知道啊,了解,那么就请积极回答一下赵老师的问题,如果说大家不清楚呢,就请在公屏之上 回复一个零,或者给赵老师呢点一个赞,让赵老师呢能够知道,大家都还能够跟得上啊,跟得上, 好,我们接着往下面去讲啊,那么整个范式的优点是什么呢?他能够去减少哈,感谢咱们的同学啊,原子化解偶啊,这个不对啊,不对啊,咱们讲整个范式的优点是他能够减少数据,什么溶于, 那么什么叫减少数据笼余呢?因为呢,你把数据给存储在多张表当中,表与表之间通过表的外界那么进行关联,那么这种设计思想遵循方式以后呢,它能减少数据笼余,那么数据它不会多存, 但是呢,正因为他有这样的个优点,同时也就带来了个缺点,缺点就是他会什么影响或者说降低查询的效率。 那么为什么这么讲呢?因为刚刚提到你把这个数据存储在了多张表这当中,那么表与表之间通过表的这个外键那么进行关联,是不是这样子的?当我们在查询数据的时候,那么咱们就需要执行个什么查询呢? 执行一个我们的多表查询,而你在执行多表查询的时候呢,他首先 会产生我们的什么迪卡尔级,那么由于在迪卡尔级当中包含一些不正确的数据,那么我们需要使用连接条件来去避免使用迪卡尔全级,那么这样的多表查询,它是会降低查询的性能的。 那么有了这个基本的知识以后呢,那么我们在整个的这个关系型的数据库的当中,他最基本的一个什么,写一下他最基本的一个什么出发点是什么呢?他是通过牺牲 纯通过牺牲我们的什么查询的效率,通过牺牲查询的效率来什么节约存储的空间?好,这个呢是我们整个关系型数据库它最基本的一个出发点, 那么还一点大家需要知道的是什么呢?那么不管是你的 oracle 也好, my sql 也好,这种关系型数据库,他们在读写数据的时候都是按照什么格式呢?都是按照我们的函数存储, 那么什么叫函数存储呢?简单来说的话就是当我们读写数据的时候,它以行为单位, 我读写完第一行以后,那么再读写我们的第二行。那好,既然他们都是我们的行市存储的,那这地方呢?赵老师呢,也需要问大家一个问题, 行市存储的这种关系型的数据库,它主要适合执行哪些操作好?老师讲的真好,谢谢啊,谢谢,谢谢。好,赵老师呢,重复一遍刚刚的问题啊,就是说 这一种关系型的数据库都是我们的行市存储的,那么大家能不能够告诉一下赵老师,行市存储的这种 关系型的数据库,它主要适合执行哪些操作好?咱们需要对每种类型的数据库,它的用场景要有一个基本的了解,这样子呢,能够为我们后续的什么技术选型做一个参考。好,咱们 讲一下行事存储的关系型的数据库呢,主要适合执行我们的 d m l 的 什么事务操作, 那么什么叫 d m l 呢?就是我们的数据操作语言,它里面呢具体包含我们的什么插入 更新,还有我们的删除操作。那么反过来说,它就并不适合执行我们的查询语句 select, 因此呢,这种函数存储的关系型数据库呢?主要用于我们的什么呢? o l t p 的 用场景。 好,问一下各位直播间同学知不知道什么是 o l t p? 如果说大家知道呢,就请给赵老师呢回复一个一,如果说 大家不知道,就请给赵老师呢回复个零啊。好,咱们接着往下来给大家进行介绍。首先大家需要知道 o l t p 的 这全称是什么?它叫做我们的 on line, 核心单词是中间的那个 tin 叫 transaction pin 呢,是我们的 processing。 好, 如果翻译成我们的中文的话, 它就叫做什么呢?连襟事务处理啊,事务呢,当然执行的是我们的 d m l 操作。那么刚刚提到这种关系型的数据库呢,并不适合我们的查询操作, 比如说我们去构建我们的数据仓库的时候。对,那么因此呢,我们在构建数据仓库的时候呢,那咱们推荐使用咱们的列式存储的方式,那列式存储它是相对的,是我们的行式存储而言,对它以列为单位, 那列式存储的数据库呢?有很多,比如说有我们的 hbs, 我 们 doris 等等,这些都是属于我们的列式存储。列式存储,对 密室存储的数据库呢,它就主要适合执行我们的什么查询操作。因此呢,它就适合去构建我们的什么数据仓库。因此呢,它就主要用在咱们的什么呢?这个 o l a p 的 应用场景当中。 好,这地方这些名词大家需要知道一下的,那么什么叫做我们的 o、 m、 l a、 p 呢?那么它的全称大家需要知道一下的,全称是我们的 on num, 核心单词是中间的那个 a, 它叫我们的 algorithm, p 呢是我们的 processing。 好, 如果呢把这个方这个呢翻成是我们的中文的话,那它就叫做我们的连筋分析处理。那么既然是分析处理的话, 我们在数据仓库里面,或者说我们在 o a a p 当中,一般来说,哈啊,这个不绝对啊,不绝对,一般来说都是执行我们的查询操作,因此呢,了解到了什么这些 类型它的应用场景以后,那么就可以为我们以后的技术选型做一个参考。好,既然咱们这地方提到了我们的数据仓库,简单地说一下,那么咱们目前构建数据仓库实现我们的 o、 l、 a、 p 呢, 那么更多的是使用我们的大数据技术,比如说你可以去使用你的 h、 d、 p、 m, 或者使用十八课来构建我们的理线素仓,包括构建我们的实时素仓。好,关于这个大数据的这个相关的知识,赵老师呢也会在后续的直播课里面 单独的来给大家进行相关的这个介绍。好,因此呢,咱们介绍到这个地方的时候, 赵老师呢就把整个今天中午的第一个小节有关关系型数据库呢,他的一些基本知识都给大家做了个详细的一个什么梳理,这些知识看似非常的基础和简单,但是呢,赵老师认为越是基础的知识 越是重要。那么不知道大家是否认同赵老师的观点?嗯,如果说大家都认同赵老师的观点, 就请在我们的公屏之上回复一个一,或者给赵老师呢点一个赞。好,咱们重点讨论一下今天中午的第二个小节, all called a 什么体系架构。 那么通过咱们刚刚的介绍,咱们提到体系架构是我们在学习 arch 的 时候那最重要的一个部分, 为什么这么讲呢?因为呢,你只有把体系架构掌握了以后呢,你后面去安装,去部署,你去管理和维护,包括呢,备份、恢复,诊断、优化、搭建集群等等等等,所有你在 arch 里面 你所执行的操作,他都是以这个体系架构为基础。那么通过咱们刚刚的介绍,大家了解到 整个体系架构里面呢,包含了三个大的部分,对,分别是我们的存储结构,我们的进程结构,我们的内存结构。而在这三个结构当中, 当然最重要的就是存储结构,而存储结构它分为逻辑存储结构和物理存储结构。这句话呢,再咱们再重复一遍,只要是数据库 都是通过逻辑存储结构来去管理我们的物理存储结构。好,咱们现在呢,咱们就一个一个来给大家进行相关的介绍。 首先咱们介绍一下存储结构当中的逻辑存储结构。好,问一下各位直播间同学,你能够把 oracle 的 逻辑存储结构里面包含的组成的部分 发送到咱们的公屏之上吗?好,如果说大家都知道呢,就请积极回答下赵老师的问题。 如果说大家并不是很了解,就请在我们的公屏之上回复一个零, 或者给赵老师呢点一个赞,哪些部分组成了他的逻辑存储结构?对,通过逻辑存储结构来去管理我们的物理存储结构,那么哪些部分是他的逻辑存储结构呢? 比如说有我们的吧?第一个是我们的什么这个表空间啊?表空间,表空间是非常重要的一个什么逻辑存储结构?你所创建的表都是创建在表空间上, 那么对于 oracle 来说,它有哪些表空间呢?每个表空间的功能和作用分别又是什么?稍后呢,咱们来给大家进行介绍。表空间里面 它包含咱们的吗?包含我们的这段,那什么是段呢?当你在表空间里面创建一张表, 或者创建一个锁影,他就自动会创建个段,比如说给创建你的这个表段或者是锁影段,但它还有其他类型的段对段里面呢?包含我们的什么?这个区啊?区 趋呢?它是由什么连续的数据块组成?好数据块是整个 oracle 的 逻净存储结构当中 最小的一个逻净存储单位,因此整个 oracle 的 逻净存储结构一共包含有什么呢?以下四个部分好,先问一下各位直播间同学,还能不能够跟得上张老师的节奏, 如果说大家都还能够跟得上呢,就请在公屏之上,请给赵老师呢回复一个一, 或者给赵老师呢点一个赞!好,咱们现在呢,重点讨论一下到底什么是我们的表空间?表空间他是对 数据库逻辑存储空间的一个划分,那么这句话呢,我给大家记在咱们的课堂笔记上呢,它是对什么数据库逻辑存储空间的什么 划分?那么我们在 oracle 里面呢,通过表空间来管理数据文件啊,写下通过我们的表空间管理什么数据文件啊?什么又叫数据文件呢?通过表空间 管理数据文件?数据文件当然是存储数据的文件,它属于我们的物理存储结构。好,既然 提到了咱们的物理存储结构,说明一下什么是物理存储结构呢?物理存储结构他指的就是硬盘上的什么, 硬盘上的各种数据或者什么文件,比如说刚刚咱们提到什么提到的这个数据文件,它就属于我们的物理存储结构,你在表里面的数据最终都将存储在我们的数据文件当中。 好,问一下各位直播间同学,能不能够告诉一下赵老师,我们在 oracle 里面数据文件的后缀是什么后缀?那如果说大家知道呢,就请告诉一下赵老师, 如果说大家不了解,那么就请给赵老师呢回复一个零,或者给赵老师呢点个赞。好,咱们接着呢往下面去讲, 它数据文件,它属于我们的物理存储结构,那么它的什么后缀是我们的 d、 b、 m、 f, 因此呢,大家后续 如果在 oracle 里面看到了什么这种 d、 b、 f 的 文件,它表示的是我们的数据文件,但是呢,我们在 oracle 里面注意下,并不直接的去 操作管理咱们的数据文件,都是通过表空间的方式来去管理我们的数据文件,通过使用这种方式,最终我们 oracle 实现了通过逻辑存储结构 来去管理我们的物理存储结构。对,好的,这些知识以后接下来呢,咱们就需要去讨论一下,你在 oracle 里面它有哪些表空间?每个表空间的作用和功能分别是什么?好,先问一下大家, 大家知不知道 oracle 里面在默认情况之下,它存在哪些表空间?你能够把这些表空间的名字发送到咱们的公屏之上吗?好,咱们切换到。嗯嗯, 我们切换到咱们实验环境当中去,来给大家进行这个演示。好,首先咱们从管理员用户呢连接到 oracle 实体上,通过实体来去操作我们的数据库。好,这个里面会涉及到一个名词, 到底什么是我们的实力啊?实力,实力呢?它包含我们内层,包含我们的进程,那么有些数据库里面呢,它是用的是我们的现成,那么只要是数据库,它都是通过实力 来去操作存储在数据库当中的数据。但是呢,在不同的数据库当中,数据库实令它与数据库的关系有可能会不太一样。比如说你在 oracle 里面,实令它与数据库呢是 一对一的关系。但是呢,如果你在 micro 里面呢,实令跟数据库呢是一对多的关系。 换句话去说,你在 oracle 里面呀,你的 oracle, oracle。 说错了, oracle 里面的使命跟数据库呢?是什么多对一关系啊?说错了,如果你的 oracle 里面,数据库的使命,它与数据库呢是一个多对一关系。换句话去说,你通过使用 多个 oracle 实体能够去操作同一个 oracle 数据库,这种架构是我们 oracle, 它的 rock 架构就是 oracle 嘛集群。 但是呢,如果你在 my sql 里面呢,关系正好是相反的,它们是一个实力能够去操作多个 my sql 的 数据库。那关于这个 my sql 的 知识呢?赵老师呢也会在后续的直播课里面 单独的来给大家进行相关的介绍。好的,这些基本知识以后,我们首先选管理员啊,对, c 扣,我们的 plus 连接到数据库的什么实体上,当你连接上来的时候,看到这句话,它被打印输出了,对,我们连接到了一个什么 item? 空闲使命上,这一句话表示什么含义呢?它就表示你当前的 oracle 使命没有启动,你不能够去操作咱们的数据库,因此呢,咱们就需要去执行一条语句,叫做我们的什么 sql 后台 启动数据库。实力,实力启动完以后呢,通过实力就能够操作存储在数据库当中数据。好,这地方呢,稍微等一会啊,那问一下各位直播间同学们还能不能够跟得上赵老师的节奏,如果说 大家都还能够跟得上呢,就请在我们的公屏之上回复一个音, 或者给赵老师呢点个赞。好。数据库实体启动完以后呢,咱们通过去查询我们的数据支点, 那什么叫数据支点呢?就是我们的系统表,通过查询数据支点,我们就能知道你在整个 oracle 里面 你包含哪些表空间,那这一张数据支点名字叫 d b a 下划线 table space。 那归数据字典的相关信息稍后呢,咱们单独的来给大家进行相关的介绍。好在这张系统表, 这张数据字典当中它就包含了我们的表空间的信息。好,咱们查询一个字段就可以了,在我们查询表空间的名字 table space name, 看下你在当前的这个 oracle 里面 包含有哪些表空间,表空间的名字分别是什么?好,咱们清一下屏看啊,对, select 一下我们的 table space 下滑线内 放咱们 d p n 下滑线 table space。 看下你这里面包含有哪一些表空间好?通过输出的信息 我们会发现呢,实际上呢,在默认的情况之下,我们的 oracle 呢,将会包含前五个表空间,最后的这个 fda 呢,是我之前创建的,那么在默认情况之下,它只会包含前五个表空间, 分别是我们的 system system a u x, 访问 time 和 users。 因此呢,咱们就需要对这五个表空间,它们的功能和作用要有一个基本的了解。好,咱们一个一个来给大家进行相关的介绍。 首先咱们介绍我们的第一个表空间, c 四 ten, 我 们的系统表空间。好,咱们单独给大家记录个笔记,记在咱们的课堂的笔记上的。好,第一个表空间是我们刚刚看到的什么?我们的 c 四 ten, 这是我们的什么?这个姓铜表空间啊,写一下它的名字,它是我们的姓铜表空间。好,问一下各位直播间同学,能不能够告诉一下赵老师,我们在 oracle 里面 哪些数据他会存储在系统的表空间当中?如果说大家知道呢,就请积极回答一下赵老师的问题,如果说大家不了解,就请在公屏之上。嗯, 回复一个赞,好让赵老师呢能够知道大家都还能够跟得上。 那么哪一些数据会存储在我们的系统的表空间当中呢?最主要的一种就是刚刚咱们提到的提到的我们的数据字典。 那什么叫数据字典呢?数据字典它就是我们整个 oracle 当中的系统表,比如说你要去查询数据库里面有哪一些用户, 有哪一些表空间,有哪一些数据文件,这些数据跟你的业务系统没有任何的关系, 它反映了什么?整个 oracle 本身的信息,那它是我们的系统表系统表的 oracle 里面呢,它有一个专有名词叫做数据字典。 那么我们可以把整个 oracle 的 数据支点按照命名规则分成四种不同的类型,因此呢,咱们简单给大家补充一点点关于数据支点的什么相关的知识。 首先数据支点它的名字呢?如果是以 d、 b、 a 开头,后面的跟一个名字这种类型的数据支点呢?只能够用数据库 管理员查看,重复一遍,以 d、 b、 m 打头的数据之点写下,只能由什么由管理管理员进行查看?好,这呢是我们需要大家了解的 第一种类型的数据之点。好,第二种类型打头的什么数据点呢?是以 o 打头的什么?就是数据点,他表示这个用户他能够访问到的数据库的对象,写下他表示表示什么?表示 该呀?该用户们能够访问,访问什么到的什么数据库的对象?比如说张三这个用户们,他能访问哪些表,能够访问哪些仕途,这些表和仕途有可能是张三创建的, 也有可能不是它创建的,那它能够访问到哪些?那整个数据之点的第三种类型,它是以什么 user 打头?那由 user 打头的什么数据之点?它表示 该用户创建的什么数据库对象叫 user 下划线打头,它这表示什么呢?表示该用户创建的哈,该 用户创建的数据库的什么对象?很明显, word 打头的包含了什么呢?以 user 打头的 那整个数据之点的第四种类型是以我们的什么这个 word dollar 打头,这种以 word dollar 打头的数据之点呢?它有一个专有名词,叫做我们的什么动态性能矢图。动态性能矢图 对于监控 oracle 的 什么,它的运行的状态非常的重要,对你如何达到监控的目的,诊断的目的都是通过去查询 这种类型,它以 vod 打头的什么动态性能图图呢?获取到相关的信息。好,因此咱们介绍到这地方的时候, 就把整个 oracle 里面需要大家了解的什么?第一个表空间,到底什么是系统表空间呢?给大家做个介绍,如果系统表空间它的数据发生损坏或者丢失, 那么 oracle 呢,将会历尽荡经,因此呢,它非常的什么这个重要?既然它非常的重要,那么我们在日常备份和恢复的过程当中,是不是就需要备份我们的系统表空间?很明显,这些相关知识 跟你的这个什么备份和恢复是不是就密切相关了?因此咱们讲体系架构是我们在学习数据库的时候最重要的一个部分。好,问一下各位直播间同学,关于什么是系统 表空间,大家是不是都听明白了?如果说这个部分大家都听明白了呢,就请在我们的公屏之上,请给赵老师呢回复一个一,或者给赵老师呢点个赞, 让赵老师呢能够知道大家都还能够跟得上赵老师的节奏。好,讨论完了咱们的 第一个表空间以后,再来讨论一下我们的第二个表空间,哪一个呢?就是大刚刚大家 看到的嘛,这根 c 是 我们的 a u x, 它是系统的辅助表空间,那么哪些数据它会存储在 辅助表空间当中呢?好,咱们单独来给大家记录一个课堂笔,记。好第二个表空间,写下它的名字是我们的什么? section a u x section a u x, 它是我们的系统的辅助辅助表空间。好,问一下各位直播间同学,你能不能够告诉一下赵老师,我们在 oracle 里面哪些数据 它会存储在我们的辅助表空间当中?如果说大家知道呢,就请告诉一下赵老师, 如果说大家不了解,那么就请在公屏之上,请给赵老师呢回复一个零,或者给赵老师呢点个赞。好,咱们接着往下来给大家进行相关的介绍。那么我们哪种类型数据哦, 它会存储在这一个表空间当中呢?最典型的就是我们的 a w r, 什么 快照的什么数据?那 awr 对 于我们诊断优化数据库非常的重要,那它的全称是我们的自动工作量资料档案库,从会变 awr 的 全称是我们的自动工作 自动工作量资料档案库。通过使用 a w r 呢,我们能够去生成我们数据库的什么性能的报告,那这性能报告 它可以是一个什么文本的形式,也可以是一个什么 html, 通过分析这样的一个报告,我们就能够找到数据库的性能瓶颈, 从而进行我们的诊断。那你要诊断的前提是不是需要有这些什么?有这些快照的什么数据,这些数据它会存储在我们的什么系统的辅助表空间当中,那既然我们的 a w r 快 照 它对于生成我们的性能报告非常的重要,那么你所生成的性能报告它长什么样子呢?对,好,这地方我准备好了一个例子,来看一下,好大,大家目前 看到的什么?这个网页就是我们使用这个 awr 生成这个什么性能报告, 它叫做什么 a w r 报告耶,通过这分析这样的一个报告,我们就能够找到数据库的心灵平静,那么从呢对我们的诊断和优化 提供相应的什么依据?依据这报告呢很长很长很长,通过阅读这样的一个报告,你能够找到历史上到底是有什么原因 引起了咱们数据库的心理平静。对,因此呢它对诊断和优化也是非常的重要,因此呢介绍到这个地方,赵老师呢,重复一遍,我们在学习 arc 的 时候,最重要的一个部分 就是学习它的体系架构,只有把体系架构掌握以后,后面咱们去安装、部署、 管理和维护、诊断和优化、搭建集群等等等等。所有你在 oracle 里面执行的操作,它都是以这个什么体型架构为基础。 还从介绍到这个地方呢,我们就给大家介绍什么前两个表空间,什么是我们的系统表空间,什么是我们的系统的辅助表空间,接着介绍咱们的第三个表空间,看一下是什么, 就下面的什么这个安顿表空间。什么叫安度表空间呢?就是我们的还原表空间,也可以叫做撤销表空间,那这个名字叫法不一样,本质上它是一个含义。 好,咱们单独给大家记录一个课堂笔记,记在咱们的这个什么文档当中,他第三个表空间写下 是我们的什么这个 on 表空间,那么它的 oracle 里呢,叫还原表空间,有的地方呢,也可以把它叫什么叫撤销表空间,那它是一个意思。好,问一下各位直播间同学们,那我们在 oracle 里面 哪一些数据,它会存储在我们的 on 表空间当中? 如果说大家知道呢,就请告诉一下赵老师。如果说大家并不是很清楚呢,就请在我们的公屏之上 回复一个零,或者给赵老师呢点一个赞。好,赵老师呢,重复一遍刚刚的问题啊,那么安度呢? 是 oracle 的 什么呢?这个还原表空间,大家能不能够告诉一下赵老师, oracle 它会把哪些数据存储在我们的还原表空间当中?如果说大家知道,那就请把答案呢发送到咱们的公屏之上, 如果说大家不了解,就请在我们的公屏之上回复一个零,或者给赵老师呢点个赞啊。好,咱们接着往下来给大家进行相关的介绍,那我们会把什么表中的什么 表中的历史数据存储在我们的还原的表空间当中,因此咱们这个地方就需要去解释一下什么叫做我们的历史数据, 它通过一个什么 demo 演示来看一下到底什么是我们的历史数据。那你把历史数据存储在 on 端表空间里面去以后它又支持哪些功能和作用? 他们签换到咱们实验环境当中来的,这么那么签换到一个什么一个普通的用户上叫 scotman, 密码是我们的 tiger。 首先我去查询一下什么呢?员工号是 七八三九的员工的薪水,那么这个语句呢,很简单,对啊,查询他的薪水,放 emp 表, where 呢?咱们员工号 等于我们的七八三九。通过查询我们会发现呢,他的薪水是五千块钱。 现在呢,我去执行一条更新语句,把它改成我们的六千块钱。语句呢,也很简单, apple data 像 e m p n set, 薪水等于我们的六千。 where 呢? 我们的员工号等于什么?七八三九。那由于我们在 oracle 里面,它是自动开启事务的,因此呢,这条阿普列的语句将会在一个什么事务当中去执行?那 它跟 my sql 不 一样的,你在 my sql 里面,你需要通过手动执行 star transaction 手动开启事务。而我们 oracle 里面呢,它是自动开启事务的, 也就是这条阿普利君,他将会自动开启的什么事务操作。而事务开启以后,我来执行一个 robert 什么 回滚操作。回滚完成以后,我重新查询员工的薪水,那他是不是又将变回成之前的什么?就五千块钱?因此整个的操作非常的简单。 但是我的问题是什么?我的问题是最早的什么?最早的这个五千块钱,它在这一条什么 up 这个语句之后, 它在这条 robot 语句之前,它在哪个地方呢?那它肯定在一个地方保存。对,那它保存到这地方的时候,当我执行 robot 语句的时候,撤销事务操作,它将会从这个地方 把历史的五千块钱拷贝回来,覆盖掉新的六千块钱,恢复到之前的什么五千块钱之上,那整个的流程基本上就这样的流程,因此咱们讲,当你去执行 这么一条阿普的的语句的时候,他把历史的什么就五千块钱呢?保存在我们的什么安度的还原表空间当中。因为通过刚刚的介绍,咱们知道你在这个还原表空间的安度里面 保存的都是表中的历史数据。因此呢,通过这样的一个非常简单的事例 就给大家讲一下,那么到底什么是我们的历史数据?它会保存在我们的这个什么安度的还原的表空间里面啊?既然大家明白什么是我们历史数据以后,那问一下大家, 你能够告诉一下赵老师吗?我们在 oracle 里面为什么要把历史数据保存在还原表空间当中吗?那它的什么?它它所支持的功能和作用是什么?好问一下各位直播间同学们, 你能够把还原表空间的功能和作用发送到咱们的公屏之上吗?你为什么要把历史数据保存下来?那他是为了什么目的?那么如果说大家都知道的话,那就请回答一下赵老师哈, 如果说大家不了解,那么就请在我们的公屏之上回复一个零,或者给赵老师呢点个赞。好,咱们接着往下,嗯, 好,咱们接着往下来给大家进行相关的介绍。好,整个我们的这个安度的什么这个 还原表空间,它是非常重要的,正因为我们在 oracle 里面存在我们的这个安度,那么它才支持非常强大的什么这个功能,对,好,接着去讨论下它的功能和作用分别是什么? 首先咱们讲安度的第一个作用是什么?支持我们为了支持我们的是吧?回滚操作?对, 当你执行 robert 回滚的时候,那他将会从我们的安卓里面把历史数据拷贝出来,覆盖掉新的数据,恢复到之前的状态上。这个呢,咱们刚刚都给大家演示过, 说支持回滚以外,还为了去支持我们的 m v c c。 好, 问一下各位直播间同学,知不知道什么是 m v c c? 如果说大家知道什么是 m v c c, 你 能不能够把它的中文名字发送到我们的公屏之上,那我们在 oracle 里面通过使用安顿支撑 m v c c, 那 什么又叫 m v c c 呢? 那它的全称是我们的多版本的病发的控制,正因为有 m v c c, 我们才能够什么支持我们的吧,就读一致性的是吧?读一致性的操作。那好解释一下什么叫 m v c 多版本病发控制。但是呢,请大家注意下,目前我们在数据库当中 实现 m v c c, 它有两种实现的方式啊,写下一种实现方式是我们的 on 方式去实现。那么另外的一种实现 m v c c 的 方式,它是什么基于我们的版本号方式呢?去实现好这两种方式呢?都能实现 m v c c, 那 么我们的什么?我们的 oracle 和我们的什么 my sql, oracle 和 my sql 用的什么 on 度方式实现 m v c c? 而你的什么 p g m, 你的 postcode 呢?它用的是版本号方式实现 m v c c 啊,这呢,大家需要去了解一下 on do 的 什么,它的第三个作用是,它是可以支持我们的什么闪回操作啊?选项第三个是支持闪回,英文单词是我们的什么? flashback 闪回,它是一种什么呢?轻量级的数据恢复,这种恢复它是不需要备份的,它用的是 interval 当中的历史数据,因此呢,整个 interval 它在 oracle 里面非常的重要,是因为我们在 oracle 里面,它存在我们的 interval, 对 oracle 呢,它才支持非常强大的功能。那顺便提一下, 跟这个 on do 非常类似的一个概念,是什么概念呢?是我们的 read do。 那 什么又叫 read do 呢?它表示的是我们的重做, 比如说你的 read do 日证, on do 里面,它记录的是表中的历史数据,而我们在 read do 里面呢,它记录的是客户端的日制操作。因此呢, 大家不要把这个 ondo 和 reddo 搞混淆了。好,接着讨论一下咱们下面的一个表空间。好,我们再去看一下下面的一个表空间是哪一个?下面的表,咱们刚刚刚刚刚刚回到咱们的管理员上吧,重新执行刚刚的这个查询语句。 查询表空间的名字啊,对, from 我 们的,对吧? d b m 下滑线, table space 啊,通过查询呢?接着讲什么?下面的一个什么 temp 表空间,也就是我们的临时表空间,而且下面的表空间叫做什么 temp 啊?他的名字呢?是临时表空间的形象,他表示我们的什么?这个临时表空间,那你在临时表空间里面呢?当然保存的是我们的临时数据。好,问一下各位直播间同学, 临时数据当然会被保存在临时表空间当中,但是我们在 oracle 里面, 哪些情况他会产生临时数据呢?你能够把产生临时数据的情况 发送到我们的公屏之上吗?临时数据他会被保存在临时的 表空间里面,比如说你去执行个什么培训,或者你去创建张临时表的这些情况都会产生临时数据他将会被保存在我们的临时的表空间里面。 好,最后一个表空间,再再介绍下,就咱们下面的是吧这根 users。 好, 下面的话,这 users 呢,是你创建表的默认表空间,它是我们的用户表空间。好,单独来给大家记录一个课堂笔记啊。 最后的这根叫做什么?叫做我们的什么 user 的, 它的中文名字是我们的用户表空间,它表示呢? 我们创建表的默认表空间,它表示什么意思呢?创建表的什么默认表空间?也就是你在 oracle 里面,你创建张表表都是创建在表空间上,如果你不指定这张表 创建在哪些,创建在哪一个表空间上,默认将会创建在 user 上。当这五个表空间,我们的 system system aux, 安东太空 user 呢?这五个表空间是你创建完一个 oracle 数据库以后呢,它自动,嗯, 自动就有的五个表空间。当然你在 oracle 里呢,也能够通过使用 create table space 机呢,创建自己表空间。当创建表空间的时候, 需要指定这个表空间里呢,包含哪几个数据文件?因为呢,整个 oracle 里呢,它是通过表空间来管理我们的数据文件。好一次呢,介绍到这地方的时候,问一下各位直播间同学, 关于什么是表空间,大家是不是都听明白了?如果说这个部分大家都听明白了呢,就请在我们的公屏之上回复一个一,或者给赵老师呢点个赞, 好,表空间里呢,包含我们的段,段是对表空间的逻辑划分段有表段,锁影段,回滚段、高速缓存段等等。 那最常用的段是我们的表段和我们的什么锁影段?当你创建一张表,创建锁影的时候呢,默认 就会在表空间上分配一个表段,或者说分配一个缩影段。 表空间它有段组成段,由什么区组成?区是分配空间的一个逻近单位,它是由什么?它是由 连讯的数据块组成啊,组成数据块是什么东西呢?它是最小的逻近存储单位。写下它是 最小的逻进存储单位。那它表示呢?表什么意思呢?表示一次一次呢?读写,读写的什么数据量是多大?好, 数据快是最小的逻进存储单位,它表示一次读写的什么数据量?好,问一下各位直播间同学,你能不能够告诉一下赵老师,我们在默认的情况之下 or code 的 数据库大项是多大?你能够把它的大小发送到我们的公屏之上吗?默认大小是多大呢?这个呢,大家能够去查看一个系统参数,获取到它的值是多少。 好,那咱们填框到我们的实验环境当中,我记得是 um, 我 们的 block 下滑线塞行,这个参数对,看一下好通,那咱们是 um, 我 们什么 parabita, 记住不? power meter line, 我 们的这个 block, 我 们的什么?这个 side 和这个参数,我是不是写错了? 好,咱们这地方啊,我去查一下啊,这,这个命令可能写错了。通过查看这样的什么参数,你就能看到数据块大小。默呢,实际上是我们的,我们的八 k 啊, 那这八 k 表示呢?表示一次读写的数据就是我们的什么这八 k? 对, 因此呢?这个地方这些东西都是它的什么?这个逻辑存储结构啊?它的参数叫什么? dp、 block、 size 写错了,对,我们去重新查一下, 参数写错了呢,它就凶我们的什么帕罗,帕罗什么我们的比特、 d、 b、 m, 下滑向量、 block, 什么赛道,由这个参数决定了什么?你的数据块大小 默认是我们的八 k m 八幺九二,它表示一次读写量数据呢,就是我们的八 k。 通过增大数据块的大小能够去提高系统的吞吐量。吞吐量是平价一个系统 非常重要的个什么性能指标,它表示一次它怎么要吞吐量呢?它表示我们在单位时间之内 系统的输出和输入比值,比值越大就表示吞吐量越大,那就表示系统的处理能力越强, 通过增大数据块大小能够提高系统的吞吐量。比如说如果说你要使用 oracle 构建数据仓库呢?对不对?那么咱们就去建议大家去增大我们的数据块的大小。 好一层,我们介绍到这地方的时候,就把整个的什么 oracle 里面他的逻辑存储结构都给大家做了什么,非常详细的介绍,什么叫表空间, 什么叫做我们的段,什么叫做我们的区,什么叫做我们的数据块?有了,有了我们的逻辑存储结构以后,通过他来管理我们的物理存储结构。物理存储结构 它指的就是硬盘上面的各种文件,比如说有你的什么数据文件,有你的什么控制文件, 还有我们的日制文件,那这地方日制文件主要指的是我们的重做日制,也是我们的 redo log, 还有我们的把这个参数文件等等等等。好,这些文件都是我们的物理存储结构,那如果说大家要系统学习的话,仅仅靠直播的一个小时,那远远不够的,因此呢,我在直播间的下方 就推荐了一门课程给大家, oracle 数据库从零开始啊。好,这门课程呢,关于 oracle 非常完整,大家呢能够去点击下直播间的讲解卡, 那就能够看到一个非常详细的一个课程大纲,那么将会从 c 口部分开始讲起,逐步升呢,来给大家介绍整个 oracle 里面全面的一些知识呢。好,因此呢,介绍到这个地方的时候, 基本上今天中午了,第一部分讲 c 口啊,第一部分讲 c 口,最简单的一个部分,对,后面还会讲管理,会讲备份恢复,集群优化等等,都会讲到。对,好,因此咱们讲到这地方时呢,基本上基本上今天中午呢, 由赵老师要给大家分享的知识大概就是这么多的,如果大家想去了解课程详细内容呢,点击直播间的讲解卡详细看一下课程大纲,课程时长超过六十个小时,要超过六十个小时。 好,咱们现在的时间是我们中午的一点二十七分,赵老师的一点三十五分下播是一点三十五分下播。好,剩下的什么时间咱们答疑,或者大家去拍一下什么课程啊, 拍完课程,同学请通过私信把你的联系方式发送给赵老师。对,赵老师呢,下播以后会单独联系你的。好,新进来的同学点点关注,基本上呢,今天中午呢, 有赵老师要给大家分享知识呢,大概就是这么多好赵老师呢,一点三十五分下播。好,要问问题的同学,请把问题发送到公屏之上。 那要拍课程,同学直接点击直播间的讲解卡,拍完课程以后呢,请通过私信把你的联系方式发送给赵老师啊对,好,新进来的同学点点关注。赵老师呢,稍后就下播了啊, 看大家还有什么问题吗?拍完课的同学呢,请通过私信啊把你的联系方式发送给赵老师啊!好,新进来的同学啊,点点关注 i feel。

时间是晚上的八点半,那么咱们就开始今天晚上的这个学习,今天晚上呢,咱们着重来给大家介绍一下国产数据库当中的泰地币, 因此呢,希望通过今天晚上的这个学习,能够让大家对我们的国产数据库, 尤其是对我们的太极臂呢能够有一个进一步了解,为我们后续的进一步学习奠定一个基础。那大家之前哈如果听过赵老师的课程,那么应该都知道 赵老师呢在上课的这个过程当中,会给大家记录一个课堂笔记,因此呢,今天晚上咱们也会按照同样的这种方式来给大家记录一个课堂笔记,重点给大家介绍以下三个方面的知识。 那么通过刚刚的介绍呢,咱们知道泰迪币呢,它是一款国产的这个关系型的数据库, 因此呢,首先咱们就需要对国产数据库的一些基本知识要有一个基本了解,哪些数据库它是国产数据库,它又有哪些特点?那么了解到了这些基本知识以后, 我们将会在第二个小节里面重点讨论一下 tdp 的 什么呢?体系架构。 那么体系架构是我们在学习数据库的时候,不管你是学习关系型数据库,比如说你学习 oracle 也好,学习 sql 也好,或者呢学习各种 nosico 数据库也好, 体系架构都是最重要的一个部分。那么这句话呢,我再重复一下,只要是学习数据库的相关的知识, 体系架构都是非常重要的一个部分,因为呢,只有把这个数据库的体系架构掌握以后呢,后面咱们去干嘛呢?后面咱们去安装部署 管理和什么了,为管理和维护,包括呢备份和什么恢复,以及诊断和优化等等。所有我们在数据库里面,我们所执行的所有的操作,它都是以这个什么体系加工为这个基础。 那么咱们通过稍后的学习,大家会了解到 type b 呢,它是一个什么呢?分布式的一个数据库。 那么在这个分布式的集群里面,它包含了什么呢?包含了三个子集群,那这三个子集群功能和作用分别是什么呢?咱们稍后呢来给大家进行详细的介绍。那么把它的体系加工找完以后呢, 我们将会在第三个小节里面,通过具体的什么 demo 演示,让大家对我们的整个的 type b 能够有一个感性认识。那么咱们将会在 demo 演示这这地方呢给大家演示以下的几个示意。首先咱们通过第一个演示, 让大家呢快速什么上手,我们的什么 type b, 那 type b 呢?它是一款什么呢?兼容 myxico 协议的国产的关系型数据库,因此呢,大家如果有这个 myxico 的 学习的基础,上手学习操作和 type b 呢,都会非常简单和容易。好,这个呢是咱们稍后要给大家演示的第一个事例。 然后呢,咱们稍后呢要给大家演示的第二个事情呢,既然你的 tidy bean 它是一款关系型的数据库,对,那么我们在关系型的数据库里面呢,很重要的一个思想, 或者说很重要的一个功能,就是它的什么事务操作啊,事务操作。那么目前咱们讲我们的 lo c 数据库 还不能够取代关系型数据库呢,很大的原因就在于 nosico 数据库,它不能够严格保证事物的 a、 c, i、 t 属性,因此呢, nosico 还不能够取代关系型数据库。既然你的 tidbit 它是一款什么关系型的数据库, 那么我们在 type b 里面呢,当然也就支持我们的事务操作,我们能够去开启事务,执行事务,包括提交和回滚事务。这个呢,基本上跟我们在 my sql 里面呢,基本上是完全一样的,因为呢, type b 本身就是一款兼容 my sql 协议的什么呢? 国产的关系型数据库。好,接着呢来给大家演示我们的第三个 demo 实力。那么我们在泰迪 b 里面呢,他提供了我们的什么列存引擎?那通过使用什么列存引擎,我们能够按照列存的方式 来存储数据,那么列存跟你的行存它有什么区别呢?稍后咱们也会来单独给大家进行相关的介绍。首先去了解一下我们在 type b 当中列存引擎的名字,它叫什么? type flash, 既然有列存也就有行存,行存引擎叫做 type v。 那 么关于这些相关的知识, 稍后呢,咱们再给大家介绍体系架构的时候,都会来给大家进行详细的说明。好,因此呢,咱们介绍到这个地方时候,赵老师呢就带着大家去梳理了一下我们在今天晚上 将会学习的哪些知识。好,咱们现在呢,咱们就按照这样的一个顺序来给大家进行相关的介绍。首先咱们看一下第一个问题哈, 我们需要讨论一下国产数据库的一些基本知识。好,这里呢赵老师呢就需要问大家一下,各位直播间同学,你能不能够把一些 国产数据库,或者你能不能把哪些数据库他们是国产数据库,你能够把他们的名字发送到咱们的公屏之上吗? 那如果说大家都知道哪些数据库都是国产数据库呢?就请告诉一下赵老师,如果说大家并不是很清楚,就请在我们的公屏之上回复一个零,或者给赵老师呢点个赞, 好让赵老师呢能够了解到大家都还能够跟得上赵老师的节奏。数据库啊,慢慢倾向于国产化,那么因为呢,随着姓创的不断发展, 国产数据库呢越来越重要,因此大家以后你在学习数据库的时候,除了需要去学习传统的 oracle, sql, pg 以外,还是需要去学习一下我们的国产数据库。好,赵老师呢在这里呢把一些比较常见的国产数据库, 包括他们的特点都来给大家做一个介绍。好,首先第一款比较常见的国产数据库呢,就是我们的达摩, 那达梦数据库呢,是我们国产数据库里面非常优秀的一款,目前据我的了解来说呢,达梦也应用的非常的广泛。好,这个地方赵老师呢就需要问大家一下, 嗯,各位直播间同学,你能不能够告诉一下赵老师,达梦数据库它兼容哪一款数据库?你能够把这款数据库的名字 也发送到咱们的公屏之上吗?好,大家呢积极回答一下赵老师的问题哈,让赵老师呢能够知道大家都还能够跟得上赵老师的节奏。 好,问一下大家能不能够告诉一下赵老师,达梦数据库它兼容哪一款数据库,或者说它跟哪款数据库非常的类似? 好,咱们接着呢往下面来给大家进行介绍。那如果说大家对达梦呢有一定了解,应该知道 答梦呢,非常类似什么类似我们的 oracle 数据库,因此呢,大家如果有这个 oracle 的 基础,以后来学习答梦呢,是非常简单和容易的,里面的语法格式, 包括它所提供的数据字典都是完全一样的。对,好,既然这个地方提到了我们的 oracle 数据库,赵老师呢,就需要说一下,如果说大家后续 你要系统地去学习有关数据库的相关的知识,赵老师呢,强烈建议大家一定从我们的 oracle 开始学起,因为呢, oracle 数据库它是所有数据库当中功能最强大, 结构最复杂的一个,当你把 oracle 掌握以后,你再去学习其他的数据库,那么都会非常简单和容易。这句话呢,我再重复一遍,如果说大家以后 你要系统地去学习数据库的知识,不管是关系型数据库还是 low c 数据库,赵老师呢,强烈建议大家 一定从我们的 oracle 开始学起好,达摩呢,非常类似我们的 oracle, 那 么国产数据库当中还有另外的一款国产数据库,也跟 oracle 呢也非常类似,那就是我们啊,牙山数据库啊,那么牙山和达摩, 牙商和达摩呢,都是属于咱们的国产的这个关系型数据库,这二者的共同点都是他们都是金融 oracle 的。 那反过来去说的话就是我们刚刚说过,如果说你掌握 oracle 以后, 你在学习达摩,你在学习牙商,那么都会非常简单和容易,那么关于达摩和牙商的相关的知识,赵老师呢也会在后续的直播课里面 单独的来给大家进行相关的介绍。好,这个呢是咱们需要了解的,怎么第一类型的国产的这个数据库,接着呢讨论咱们的第二款类型,那就是我们的吗?我们的金仓,我们的金仓数据库包括呢这个什么华为的高斯数据库 好,为什么赵老师要把这两款国产数据库放到一起来给大家进行介绍呢?大家能不能够猜一下,赵老师为什么要把他们两个放到一起来给大家进行介绍? 这两款数数据库,金昌和高升他们有什么样的共同点呢?大家能不能够告诉一下赵老师,那看一下大家是不是对咱们的国产数据库呢,能够有一个基本的了解,那如果说大家都知道呢,就请把他们的共同点 发送到咱们的公屏之上,如果说大家并不是很清楚,就请在我们的公屏之上回复个零,或者呢给周老师呢点个赞。好,咱们接着呢往下给大家进行介绍, 那么咱们讲金昌和华为的高斯,它们都是什么呢?基于我们的 possico 的, 那 possico 呢?它是一款功能非常强大的这个 开源的关系型的数据库,那么基于 post ccom, 那 么国产数据库里面呢,就开发了我们的金仓和我们的高斯,因此呢反过来去说的话,大家 如果掌握了我们的 postulate, 那 么你的学习经商和学习高师当然也会非常简单很容易。当然关于经商和这个高师的更加系统的知识,赵老师呢也会放到后续来给大家进行相关的介绍。 好,这个呢是咱们大家需要了解的什么呢?第二款的第二类型的什么呢?这个国产的数据库,接着呢介绍咱们的第三种类型,那就是我们的这个吧, o 星贝斯啊, 那么欧星贝斯呢,也是一款功能非常强大的什么呢?这个开源啊,不是国产的一款什么关系型数据库,但是呢欧星贝斯呢,它最主要的特点是什么?它跟我们泰迪 bim 也非常类似,它是一款什么呢? 分布式的什么呢?分布式的一个关系型的数据库。那么既然它是一个分布式的, 大家以后只要看到了什么呢?分布式这三个字,这三个,这三个,这三个什么字啊?就反过来它是什么?它是一个集群,那既然它是一个集群,那集群里面呢,它将会包含若干的节点。那如果说大家同样 对我们的欧星贝斯的分布式的集群里面,它最重要的节点 就是我们的嘛 o b server 节点啊,写下 o b server, 那 这个 o b server 节点共同组成了我们的 o c 背式的 分布式集群,它整个集群当中最重要的一部分,那么 o b server 节点它负责呢存储数据以及呢接收客户端的 c 口语句,并且呢执行我们的 c 口语句。对, 那么关于欧星贝斯这里呢还有一个非常重要的概念,现在简单的给大家做个介绍,那就是呢,什么是欧星贝斯的什么租户啊?好,问一下各位直播间同学,你是否清楚什么是欧星贝斯的租户? 如果说大家知道,那就请给赵老师呢回复一个一,如果说大家并不知道呢,就请给赵老师呢回复个零。当然关于 o 心 face 更加系统的知识,赵老师呢也会放到后续的直播课里面, 单独的来给大家进行相关的介绍。今天晚上呢,先简单做一个了解。好, 咱们讲一下什么叫做 o c 贝斯的租户呢?租户,它就相当于是什么呢?我们传统的这个数据库当中的什么数据库的使命,那么只要是数据库啊,不管是哪种类型的数据库, 都是通过数据库实令来去操作数据库。但是呢,我们在 o c 贝斯当中并不把它叫做数据库实令, 而是把它叫做我们的租户。那并且我们在欧星贝斯当中,它支持两种租户啊,一种是我们能够去创建什么 oracle 租户, 一种是我们能够去创建 oracle 租户,那欧星贝斯通过创建 oracle 租户,本质上就是创建了一个 oracle 的 数据库实体,通过使用这样的一种方式, 我们来去支持 oracle 的 运行模式。嗯,数据库是一样的,通过创建 my sql, 本质上就是创建了一个 my sql 的 什么数据库来去支持我们的 my sql 的 运行模式。 好,这些更加系统深入的知识,赵老师呢当然也会放到这个后续的直播课里面,单独的来给大家进行相关的介绍。 好,这个呢是咱们大家需要了解的什么第三款的第三种类型的这个国产的这个数据库啊,好,接着讨论咱们的的第四款,那就今天晚上呢,重点要给大家介绍的我们的 type b 啊,那到底什么是 type b 呢? 首先大家需要知道 tidy bin, 它兼容我们的 myicycle 谐音,这句话呢,给大家记在咱们的课堂笔记上,对啊,写下它兼容我们的 myicycle 谐音,那么也就是说大家如果有这个 myicycle 的 基础,以后 你上手操作 tidy bin 会非常简单,基本上跟我们在 myicycle 里面 基本上是完全一样的。那咱们讲泰迪病跟痛风的主要区别是什么?痛风注意下它是个什么?它是一个 集中式啊,它是个集中式存储的什么数据库?换句话去说,你在痛风里面,它本身并不能够支持我们的分布式存储,它本身不能够去实现我们的分库和分表。那如果说 你在这个 mexico 当中,你要去实现数据的分布式存储,你要去实现 分库和分表的话呢,我们需要借助数据库的中间键才能够去实现。因为呢, mexico 本身它是个集中式存储的,它不支持这些分布式的功能。 但是呢,泰迪病它天生就是什么呢?它天生就是一种分布式的架构,它跟欧新贝氏是一样的,它也是一个什么,也是一个分布式的一个集群。那既然它本身就是一个分布式的一个集群,对,那么我们在泰迪病里面呢, 就能够很容易很方便地去实现我们的分布式存储,也能够去实现我们的分部、分库和分表。这一点是 type b, 它跟 micro 呢非常大的一个什么区别。 但呢,通过咱们稍后的学习,大家会了解到 type b 呢,它还有个特点呢,它是支持我们的 h type 的 一个什么? 支持 h tab 的 一款国产的分布式的关系型的数据库。好,这地方就会涉及到一个名词,什么叫做我们的 h tab? 好, 这地方问一下大家,你能不能够把这地方的 h tab, 它的含义,它的名字全称发送到咱们的公屏之上? 那么如果说大家都知道了,就请积极回答下赵老师的问题。到底什么叫 h tab? 如果大家并不是很清楚呢,就请在我们的公屏之上回复一个零, 或者给赵老师呢点一个赞。到底什么叫 h tab? 这些呢,都是我们在学习 type b 之前都需要大家非常清楚了解到的知识,尽管这些知识 看似非常简单和基础,但是呢,赵老师认为呢,越是基础的知识,那么越是重要。好,咱们解释一下,什么叫做 h type h type 呢?它表示什么含义呢?它表示混合我们的 o l a 拼,混合 o l t 拼 和我们。那么 o a p。 换句话去说,我们在泰迪 b 里面既支持 o l t p m, 也支持我们的 o l a p, 它通过两种存储引擎来去支持。但这地方呢,首先你就需要知道什么叫做我们的 o l t p m, 什么叫做 o l a p m, 那 这些概念呢?给大家写在咱们的课堂笔记上。首先解释一下, 什么叫做我们的 o l t p m, 那 么它的这个全称大家需要知道下的全称是我们吗? online 核心单词是中间的那个 t, 它叫 transaction p 呢,是我们的 processing。 那 如果说把这个呢翻译成是我们的这个中文的话,它就叫做什么连襟事务处理。那既然是事务处理的话,我们就需要去执行我们的插入、 更新和删除,然后开启事物,提交事物,这个呢也是整个关系型数据库里面最重要的一个特征。那么我们在 type b 里面呢,他提供了两种存储引擎,刚刚提到过,一种是我们的航天引擎,一种是我们的列存引擎。 那整个 tdp 里面呢?它通过使用它的什么?它的航纯引擎叫做什么? tkv 啊?那 tkv 呢?是整个 tdp 里面的什么航纯引擎?通过使用这种航纯引擎 来去支持我们的 oltp 的 应用场景。那么这呢整个 h type 它的第一层含义,那么 h tab 它的第二层含义呢?它还需要去支持我们的什么?这个 o l a p, 那 什么又叫 o l a p 呢?全称,大家同样需要知道一下,全称是我们的什么? anam 核心单词是中间的那个 a, 它叫什么? annalik? 好, 如果呢?把它翻译成什么? annalik? 好, 如果呢?把它翻译成什么? annalik p 呢?是我们的 processing, 好, 如果呢?把这个呢也翻成是我们的中文的话,它就叫做我们的连襟分析处理。 既然是分析处理的话,那么一般来讲啊,这不绝对啊,不绝对,一般来讲,我们在 o l a p 当中,一般情况下 只会去执行我们的查询语句,比如说当我们去构建我们的数据仓库的时候,那并且呢我们的 type b 里面呢,它通过使用它的列存引擎叫 type flash 去支持我们的 o l a 屏,这呢也给大家记载咱们的课堂笔记站台啊,它还有个什么我们的列存引擎叫 type flash 的, 来支持我们的什么呢?这个 o l a 屏。 每一次呢,讲到这地方的时候,就引出了咱们 tdp 的 吗?整个的一个体系架构。那你应该知道,我们在整个 tdp 里面,它存储数据的时候,对,它有两种存储方式,一种是行存方式, 一种是列存方式。行存引擎叫做我们的太 kv, 列存引擎叫做我们的吗?太发系,对,但是呢最像。嗯, 不管是什么呢?不管是行存也好,还是列存也好,最终的数据都是存储在底层的。什么呢? ruxd p 当中。那讲一下啊,行存引擎它可以呢, 它会把数据按照行维单位存储到底层吧? ruxd p 当中,列存引擎也是一样的,它会按照列的方式,也把数据呢也存储在底, 已成了什么?就 x d b 当中。好,这地方咱们可能就需要解释一下,什么是我们的 x d b, 那 x d b 呢?它类似于我们的 radius, 它也是一款什么呢?基于 k value 类型的什么建值数据库?既然你的 x d b, 它是一款建值数据库,那么我们在这个 type b 当中就需要通过一种方式 把你的什么呢?行存数据,或者说把你的列存数据转换成是我们的 key value 形式。那这呢就是整个后面要讲到的什么呢?计算子集群它所要完成的功能。这句话呢,我 再重复一遍。对,那不管是行存也好还是列存也好,对,最终数据都将存储在 底层的 ruxdb 当中。 ruxdb 它是个什么?它是一个建值数据库啊?学校,它是一个什么?建值数据库?那么基于我们的 key value 方式呢?既然它是个建值数据库,那不管是 tkv 也好还是 tfa 也好,它就需要按照行的方式, 或者按照列的方式,把函数数据或者列式数据转换成甚键值对儿的 key value, 最终呢存储在底层的 r、 x、 d、 b 当中,那谁负责?谁负责 把这个行存数据,或者说把列存数据转换成甚键值对儿形式呢? 就是由泰迪病分布式集群当中的计算子集群,它来完成这个转换的工作。那么关于这个问题呢,稍后咱们再给大家介绍到体系架构的时候,那么再来给大家进行详细介绍。 好,因此咱们介绍到这地方的时候,整个有关什么国产数据库的一些基本知识, 就给大家介绍到这地方。好,问一下各位直播间同学,关于今天晚上的第一个小节目,有关国产数据库的基本介绍,大家是不是都听明白了?如果说这个部分大家都听明白了呢? 就请在我们的公屏之上,请给赵老师呢回复一个一,或者给赵老师呢点个赞。好,咱们接着往下来给大家介绍第二个部分的知识。好,大家,这个部分,嗯, 大家这个部分,嗯,都听明白了吗?呀,还有的之前的这学习的基础以后。好,咱们进到咱们的第二个小节目,重点讨论下泰迪贝的什么它的体系架构。 那么刚刚提到过体系架构,它是非常重要的一个部分,那只有把数据库的什么体系架构掌握以后, 后面咱们去安装和部署,管理和维护,备份和恢复整段优化,包括你搭建集群这些所有的操作,它都是以一个什么 体系架构为这个基础,那泰地币呢?它是一个分布式的一个集群,那么在这个分布式集群里面 它包含了什么呢?三个子集群,那这三个子集群呢?先把它的名字给大家什么呢?记在咱们的课堂笔记上。 好,首先第一个子集群叫做什么?叫做计算,叫做计算集群啊,那这个是整个泰迪病分布式集群当中的第一个部分,叫计算子集群,而且个子吧计算 子集群。然后这个既整个分布式集群里面的第二个组成部分叫做什么?就是我们的存储子集群。 然后第三个部分是我们的什么调动子集群啊?对,好,这三个部分共同组成了 type b 的 什么分布式群。因此那接下来呢,咱们就需要详细讨论一下,在这三个子集群当中各包含哪些组成部分。 首先咱们讨论一下第一个部分,我们的计算子集群,那么我们的计算子集群当中,它将会包含若干个 type b server 啊,写一下,这个里面呢,它将会包含有什么?若干啊?若啊,若干 单个我们吗? tdp server, 这些 tdp server 共同组成了我们的计算子集群。那么我们计算子集群它的功能和作用呢?主要体现在以下两个方面, 首先这个计算子群里面它由若干个 tdp server 组成的,首先它的第二个功能是什么?接收并执行 客户端发送过来的 c 口语句。写下它的第一个作用是什么呢?接收并执行客户端发送过来的 c 口语句。写下接收啊,写下接收 并什么?执行客户端发送的什么? c 口语句。那么既然是如此的话,你通过客户端 连接 type b 矩阵的时候,就需要去连接我们的计算子矩阵当中的什么 type b server。 那 么这个呢,它的第一个作用接收被执行客户端发送过的呢 c 口语句。那么它的第二个作用是把 c 口语句转换成是我们的 key value 操作啊,写一下它的第二个是什么?把我们的 c 口语句转换成是我们的什么 key value 操作。那为什么它要把 c 口语句转换成什么 key value 操作呢?因为刚刚提到过,不管是你的行存引擎也好, 还是你的内存引擎也好,数据最终都是存储在底层的 ruxdb 当中。 而我们的 rack c d b 呢,它又是一款键值数据库,因此呢,它会按照 key value 方式来存储数据。那既然是如此的话,你通过标准 sql 语句,你去操作 key value 数据呢,就需要通过一种转换, 把你的 c 口语句转换成我们的 key value 操作。而这个转换的动作就是由我们的计算子集群当中的 tidbit server 它去完成的。对,好,这个地方介绍完了咱们的第一个 子群以后,接着介绍我们的第二个子群,那就是我们吧存储子群。那存储子群当中当然就在存储我们的数据,它有两种存储引擎啊。第一种存储引擎是我们的什么? 这个我们的航存航存引擎叫 t k v 节点啊,叫 t k v t k v 节点的 t k v server 也可以啊, t k v server, 那 么 t k v server 呢?是整个 t t v 的 什么航存引擎?那 存储指令当中还有另外的一种存储引擎,叫做我们的什么列存引擎,叫做我们 t flash server。 对, 就像它的什么列存引擎,叫什么 t flash? 什么 这个十二代,那通过使用咱们的这个什么?通过使用咱们的这个行存引擎,它来支持什么?支持我们的 o l t p 的 用场景。通过使用列存引擎的 type-f l 型呢?支持我们的吧这个 o l a p 的 用场景。 但是呢,请大家注意一下,那么我们在 t p 里面,你只能够去操作我们。你,你只能够, 你作为客户端来说哈,你作为客户端来说,你只能够去操作我们的什么航吹引擎,你不能够直接操作我们的列吹引擎。这句话呢,我再重复一下,那么你要操作 tvb 的 话,你,你作为什么?你作为这个,嗯, 你作为这个客户端来讲,你只能够操作咱们的行存引擎,你不能够直接操作列存引擎。对,如何按照列存方式来存储数据呢?你需要先把数据存储在行存引擎当中, 然后开启这张表的列存功能。通过使用这种方式, 我们的 type-flash 就 会从 type v 里面呢同步数据,通过这种方式呢来支持我们的列存,从而支持我们的 o l a 屏。这个呢,咱们稍后会通过 demo 演示 让大家能够有一个感性认识。那注意这些子群当中这些节点 seven 都会有什么?都可以有若干个,因此我们会写上一个什么,写上一个 s 表示呢?它们这地方可能会有多个啊,有多个呢?共同组成这么一个 集群环境,它当整个我们的什么胎低病分布式集群当中,它还包含咱们的什么?我们的调度 子集群,那在调度子集群当中它将会包含一个或者若干若干个我们的 p d m server, 那 什么叫 p d server 呢?它的全称叫 placement driver, 写下它的全称是我们的吗? placement 啊, placement, 我 们的 driver, 对, 当然这个呢它也会有若干个节点,整个调度子集群,它主要负责存储集群的原信息。 写下他主要职责是存储集群的元信息啊,写下他是存储集群的什么元信息。好,这地方咱们可能就需要去解释一下什么叫做元信息。 那比如说什么叫圆心心呢?数据最终就存储在行存引擎,或者存储在列存引擎当中,那数据存储的位置就可以把它看成是圆心心。因此当你客户端执行 cq 语句的时候,客户端首先会去 访问一下调度子群获取到什么呢?数据的原信息,数据原信息获取到以后以后,再来根据原信息访问对应的什么行存节点, 或者访问对应的列存节点获取到最终数据。因此整个数据集群,整个集群数据原信息都是存储在我们的 调度子矩阵当中。好一层,我们介绍到这个地方时候,就给大家详细讨论一下我们整个泰迪杯的一个体架构,它这里面呢一共包含什么这三个组成部分。如果说你要使用画图的方式 把它给画出来的话,咱们看一张图片啊,那这张图片就以图形方式详细给大家介绍一下整个 type b 的 什么体系结构。对,那这里呢涉及到的知识刚刚都讲到过。对,好,咱们给大家放大一点点看,现在 它整个 tdp 的 分布式集群当中包含有什么?三个子集群?刚刚说的什么?我们的计算子集群,我们的存储子集群,我们的调度子集群,计算子集群当中包含有什么?若干个 tdp 设备, 那它的功能主要体现在两个方面,首先第一个方面,接收并执行客户端的 c 口语句,第二呢,把 c 口语句转换成是我们的键值段操作。而存储指令当中 包含两种存储引擎,一个呢是我们的 type v 的 什么内存引擎,最终都是把数据 存储在底层,什么 ruxdb 当中,那数据到底被存储在了哪个节点之上?那么这个呢,叫做数据的原信芯,原信芯将会被存储在我们的调度 子序群当中,调度子序群里面将会包含什么?若干个 p、 d、 server, 因此整个 t、 d 的 子序群结构,那就包含什么这三个组成部分。那你把体系加工 了解完以后呢?后面我们再去安装部署的时候,那你就明白这些分别代表什么含义。 还有从介绍到这地方的时候,问一下各位直播间同学,关于我们的第二个部分,有关 k、 d、 b 的 体系架构,这个部分大家是不是都听明白了?如果说这个部分大家都听明白了呢, 就请在我们的公屏之上,请给赵老师呢回复一个六六六,或者给赵老师呢点个赞。这个部分大家都听明白了吗? 好积极呢,跟赵老师呢互动一下,让赵老师呢能够了解到大家都还能够跟得上赵老师的节奏。对,好,感谢哈,感感谢这位同学 啊,其他同学是不是也都听明白了?如果大家都听明白呢,给老师互动一下,回复一个六六六啊,还有的这些知识。以后接下来呢,咱们进到我们的第三个小节,学习 咱们通过咱们的什么 demo 的 演示,让大家能够对我们的 t d b 呢,能够有一个感性认识的。那刚刚提到过 t d b 呢,它是一款什么呢?兼容 myxico 协议的什么呢?这个数据库,既然它兼容我们的 myxico, 大家呢,如果有这个 myxico 的 什么学习基础,以后呢,你上手啊,你上手, t d b 呢,会非常简单容易,整个 t d b 的 操作 基本上跟我们在 my sql 里面几乎是完全一样的,完全一样的语法格式都是一样的。好,你说这些基本概念以后,现在呢,怎么切换到咱们的实验环境上去, 把我们的 type b 级群给它启动起来的。切换到实验环境去,那首先我就看一下我在当前的这数据库上 部署好哪些 type b 群,那整个 type b 里面呢,它提供了一个非常好用的部集群的部署管理工具,叫 type up, 写一下 type up, 对, 那什么叫 type up 呢? 嗯, type up, 它是 type b 里面提供的一个集群部署集群管理的一个工具。通过使用 type up 呢,你能够去部署我们的 type b 集群,也能够启动停止这集群。 首先咱们去执行一条命令,叫 type class 的, 查看一下你当前里面呢环境里面部署好了哪?部署好了哪些集群,我们可以把集群名称打印输出在屏幕之上的,执行一个 type class list 的。 好,如果当前环境里面呢, 我只部署好了一个 type class 版本,是 八点五点一的版本,既然能够查看集群相关信息,也能够启动集群,也能够停止集群,包括查看集群的状态都是可以的。 好,我们去把我们的集群去给它启动起来的。好,我们再来执行我们的一条命令,叫什么 tie up, 我 们的 tie up cluster, 我 们把这个 start, 把你要启动的集群的名字写在咱们的这后面,我们刚刚叫做 my tidy bin cluster。 好, 我们的启动集群的时候,请大家注意它所打印输出的日字里面 包含启动了哪些相关的部分。好,这地方,那稍微等待一会儿啊,等待一会儿啊,这里面包含哪些部分呢?看一下,通过打印日字 你就能够看出来你当前剧情里面把哪些节点啊?这地方稍微等一下。好,问一下大家还能不能够跟得上赵老师的节奏啊? 如果大家都还能够跟得上呢,就请给赵老师呢回复一个音,或者给赵老师呢点个赞。好,我们等剧情启动完以后,接着呢,给大家演示下面的步骤,大家还能够跟得上吗? 好,谢谢哈,谢谢谢谢。尾号是三五二二的同学。好,咱们这个地方正在启动啊, 他启动完以后,我们看一下日期啊,看一下日期里面他启动哪些,启动哪些部分。好,我们往上面去看一下, 首先它启动我们了,首先启动我们的这个什么 p d 节点,是不是 p d 呢? p d 是 整个的什么调度集群,那把它启动起来以后呢?我们就能够存储和读写我们的原数据了,是不是啊?好, p d 启动完以后呢?启动我们的什么 type v, 什么是钛 k v 呢?钛 k v 是 整个钛 d b 里面的什么航空引擎?好,在咱们当前的集群里面一共包含有什么呢?三个钛 k v 节点, 那分别运行在当前主机什么这三个端口之上?好,咱们这地方有三个航空节点。 好,行存 type b 启动起来以后呢,再启动我们的 type b server。 那 什么是 type b server 呢?它是我们的什么?这个 计算指令群在接收并执行客户端的 c 口语句,包括呢?把 c 口语句转换成是我们的键子的操作。那么现在那么启动了两个 type b server, 分 别运行在当前主机的什么四千端口 和四千以内的什么端口之上。对,好,那么既然再启动了什么?再启动了一个 type flash, 什么是 type flash 呢?它是整个 type d b 的 什么呢?这个,嗯,逆存引擎,这里面只有一个。对,运行在当前主机的吗?九千端口之上。那这些知识刚刚我们在介绍体系架构的时候, 是不是都给大家记得详细的说明?对,后面呢,还启动,我们把这个 periscope, 包括我们的 gopher 呢,通过使用 periscope 还有我们的 gopher 呢,能够执行数据库的嘛?监控。对,好,当你把整个 tty 屏幕启动起来以后呢,它 给我们提供了一个什么图形化的界面,那么咱们执行一句叫什么叫做我们的 top 呢?通过把这个 start 呢改为我们的 dispatch, 能够展能够显示整个集群什么拓谱结构。对,他看整个群群拓谱结构 跟咱们刚刚启动顺序呢?里面打印出数据基本是什么完全一样的。好,我们看上面这地方呢?那这地方整个我们的 type b 里呢?它提供了一个什么 仪表盘工具?运行在当前组织的吗?二三七九端口之上,这个是整个泰迪宾,他提供的什么 仪表盘的图形化工具?通过使用这个图形化的工具,我们能够去监控我们的泰迪佩奇群,它是基于网页的。啊,好,我们打开它看一下,对,他通通过浏览器呢访问咱们的连接,他使用咱们的泰迪佩奇吗?这个 管理员用户呢就能够登录到咱们仪表盘上。对,登录到仪表盘上去以后呢,你通过这样的什么图形化的工具,你能够去监控整个集群的什么运行的状态,包括呢监控它的性能,监控那么慢查询等等等等。当然通过使用这样的一个图形化工具 也能够去查看集群的节点的信息。那么看一下整个集群节点性它包含哪些呢?看一下他们把它给放大一点点的,跟他们刚刚看到是完全一样的。比如说咱们这一样包含有一个 p d 节点, 包含有什么两个 tidbit 节点,包含有什么三个 tidbit 节点,那这些是不是刚刚跟我们在命令行上看到的是完全一样的?你需要通过使用咱们的 t tidbit 节点呢?连接我们的什么这个 type b 的 集群。那咱们这个地方呢,有两个 type b, 四二分别运行在当前主机的吗?四千端口和四千音频端口。现在呢,咱们通过咱们什么 type b 节点呢?连接我们的 type b 集群。既然你的什么 type b, 它兼容 myico 协议,你就能够直接使用 myico 协议, 你就能够直接使用 myico 的 客户端,那么连接我们的 type b。 好, 我们来演示下如何去连接上去。耶, 好,那么进到面很上,对,好,之前我们 my ccom 通过杠 u 指定用户名,用户名我们入特 杠 pin 密码,杠 h 主机地址幺九二点幺六八点七九点幺零,杠大 pin 指定我们 tdp server 端口,四千端口或者呢四千英端口也都可以的。连接上来以后 基本的操作跟我们在 my sql 里面是完全一样的。那么比如说你先看一下,哎,我在当前的泰地编辑群里面创建好了哪些 数据库呢?直接执行我们把心给它背死的。那么这语句跟我们在 my sql 里面那不是完全一样的吗?对,它这地方,我们切换到我们的这个 sql 数据库下面,看一下你的这个 sql 数据库下面 包含有哪些相关的表。对啊,切换到我们的石膏下面去。对,又像我们的石膏,那看一下这下面有哪些表呢?那在执行我们那个什么 some tables。 对 啊,下面的两张表分别是我们的员工表和我们的什么 部门表。对啊,看一下员工表和部门的相关数据,然后呢,就执行我们的 c 口句,而你所执行的,是吧?这条 c 口语句, 它将会由什么 t、 t、 v server 转换成是一个 k v 六的一个什么键值操作,最终去操作存储在底层的 rux d b 当中数据。那默认呢?只能够去操作我们的 t k v 的 什么航天引擎,你默认不能够操作咱们的列车引擎的。好,执行就要查询去。那大家员工表里面 一共包含有什么?包含有十四条员工数据,每条数据呢一共有八个例,简单解释下八个例的含义,分别代表我们员工的员工号,员工的员工号、员工的名字、 员工的职位、员工的老板就是老板的员工号,入职日期,还有什么薪水,对奖金和员工所在部门的部门号。对,因此整个 tdp 的 操作 基本上跟我们在 mico 里面是完全一样的。好一,从演示到这地方的时候,对,好,咱们的第一个 demo 呢,快速上手太极病呢,就给大家演示到这里。好问一下各位直播间同学,关于咱们的第一个 demo 演示,大家是不是都看明白了啊? 如果说快速上手太极病这个 demo 演示大家都看明白了呢,就请给赵老师呢回复一个六六六, 或者给赵老师呢点个赞,借呢,咱们也是我们的第二个 demo 试例,那么我们的泰迪币里面呢,能够执行我们的事物操作,事物操作,因为整个泰迪币呢,它是一款什么? 总体上来说,他依然是一款关系型数据库,那既然他是一款关系型数据库,而我们在关系型数据库当中最重要的特征就是呢,他需要支持我们的呢事务操作。那什么叫事务呢?简单解释一下, 那事物呢,它是由什么一组 d m l 语句组成?那什么叫 d m l 语句呢?写一下它的什么,它的全称,它叫什么? datam 命令,什么 puml 语言,那反成是中文的话,它就是数据操作语言。那么在我们的 d m l 里呢,它就只包含我们的吗?包含我们的这个插入 我们的吧,这个更新我们的什么删除,那我们的事物里呢,并不包含我们的什么查询语句,那这段是整个事物的一个基本的概念。 好,问一下各位直播间同学,你能不能够进一步告诉赵老师一下,事物它具备哪四个属性?你能够把这四个属性的名字 也发送到咱们的公屏之上吗?这些是我们在学习关系型数据库的时候,学习事物的时候最重要的知识。事物它具备哪四个属性? 如果大家知道呢,就请告诉一下赵老师。如果说大家并不是很清楚呢,就请在我们的公屏之上回复一个零,或者给赵老师呢点个赞啊,咱们接着呢,往下来给大家进行相关的介绍。 好,咱们讲啊,咱们讲,咱们接着讲,接着讲。那么怎么讲事物呢?它一共具备什么四个属性? 分别是我们的什么? a, c, i, d。 那 什么叫 a, c, i, d 呢?写一下它什么,它的全称哈,它全称呢?好, a 代表我们的什么?我们的这个原子原子性, c 代表我们的什么?这个一致性 i 代表我们的什么?这个隔离性。对, d 呢?代表我们的持久性。对,好,简单介绍一下我们的事物,对,那关于事物呢更加系统知识。赵老师呢会放到后续 给大家介绍这个 my secret 的 时候,再来具体给大家进行介绍。对,好,有了事物的基本概念以后呢,我们需要去开启事物, 我们需要进行操作失误,我们需要进行什么回滚失误的,比如说我来模拟一个银行转账的过程,既然是转账的话,我就需要包含扣钱和加钱的动作,那举个例子,举一个转账例子,对,转账, 转账的话至少就分为扣钱和加钱,扣钱和加钱,它就是两条 up 的 语句,它们应该同时 执行成功,或者同时执行不成功。因此呢,我们可以把它放在什么事物当中来去执行?对,他先去准备一下我们可能需要用的什么数据,他要去创建张表 create 什么?我们这个 table, 这个呢,跟我们在 micro 里面是完全一样的,叫 user account 来存储用户,储户他有多少钱?表结构很简单,它里面包含什么?三个列,一个是 id 号,一个是名字。 你妈,它是个什么? more cash, 还有它有多少钱的 money? 它表创建出来以后,往这里面插入两条数据,它执行一个 excel 什么操作? excel 什么? user account, 首先插入我们第一条数据,嗯, excel 名字叫做 tom, 他 有一千块钱,他再插入我们第二条数据,我们的吗?我们的麦克,他也有一千块钱。好,数据准备好以后呢?啊,我来执行一个简单的一个什么查询语句。 cs 吗?我们的这个什么? 我们的心放我们的嘛? user account。 那 么咱们在初死状态上呢?我们 tom 和 mike 呢,各有一千块钱,我现在我就想要从 tom 的 账号上面转一百块钱转给 mike, 那 么他应该同时 执行成功,或者呢同时执行不成功?对,那否则钱就丢了,对不对?因此呢,咱们可以放到一个什么事物里面来去执行事物呢?首先需要去开启,叫 star 传送性。注意一下,我们在 mycelium 里面,包括我们在 type a b 里面, 这种开启事物的方式叫做手动开启事物。而我们在达梦,我们的 oracle 里面呢,是自动开启事物的,换句话说,你在 oracle 里面, 你在达梦里面呢,不需要去执行这句话,它就会自动什么开启事物,那这呢可是各种数据库它所不一样的地方。 好,事务开启以后,首先咱们来执行一个扣钱的动作,我从 tom 账号上呢扣掉一百块钱,执行一个什么 up 的 语句, up 的 什么? user, 我 们的 account set, 我 们的 money 等于 money, 减去一百块钱,为了 id 号等于什么?一号扣钱。完成了以后,我还要执行一个加钱动作,执行我的第二条 up 的 语句, 这两条 application 都执行成功了,它表示转账完成了,我来执行了一个提交事务,对,所以事务提交。 提交事务的本质是把 d m l 句写到日制当中,只要日制写入成功,就算提交成功,跟数据本身 没有任何的关系的。它整个转账完成以后呢,看数据,它是不是一个正常状态的。这个时呢,我们的什么?我们的这个 tom 呢?将会变成九百块钱, mac 呢?变成我们的一千一百块钱。因此整个我们在 tdp 里面, 它的事务操作基本上跟我们在 mexico 里面是完全一样的。还有一层延伸到这地方的时候, 问一下各位直播间同学,关于咱们的第二个 demo 演示呢?事物操作大家是不是都看明白了? 如果说这个部分大家也都看明白了呢,就请在我们的公屏之上回复一个一吧,回复个一,或者给赵老师呢点个赞,好让赵老师呢能够知道大家都还能够跟得上,跟得上。好,大家都看明白了吗? 好,好,谢谢,好,谢谢,谢谢。好,既然大家都看明白了呢, 那接下来也是咱们的最后一个视例,那么如何去操作我们的列寸引擎 type flash 呢?那这地方需要注意一下,那我们在这个 type d b 的 这当中跟 type d b 的 这当中,你默认哈只能够去操作行寸引擎 type v, 你不能够去操作 typeahead, 我 们需要针对表开启它的列存功能,当你针对表开启列存功能以后, typeahead 就 会自动从 typeahead 里面同步数据,按照列存方式来存储数据。当然表中的数据 word 是 存储在我们的 type v 的 什么行存引擎当中,这个呢,咱们能够通过查看 sql 的 执行计划,看到你的数据到底来自于 type v 还是来自于我们的 type 法系。咱们把 sql 的 执行计划打印输出在屏幕之上呢, 好比如说咱们去查询员工表的什么,所有数据塞在什么,我们的心放我们的 e n p, 那 这个查询语句到底查询的是 type v 的 行存引擎, 还是查询的 type flash 的 列车引擎呢?我们可以把这句话的什么执行计划打印输出在屏幕之上,这呢跟 my sql 一 样,前面加上一个关键字,将 explain 加上它以后,它就会把这条 sql 的 呢执行计划直接打印输出在屏幕之上。 通过执行计划咱们就判断出来你所执行的什么。这条 c 口语句数据都来自于哪里?都来自于我们什么 tkv 的 什么航空引擎,于刚提到过, 数据默认只能够存储在钛 k v 的 什么航天引擎当中。那你为了存储在列存引擎里面,你需要开启这张表的列存功能,那当开启列存功能以后,钛 plus 列存引擎 会自动从钛 k v 的 行存引擎当中同步数据,那当你再次执行 c 口语句的时候,钛 k v 会自动判断你读 舞曲。数据是来自我们的航村还是来自于我们列村?下面呢?咱们来给大家举个例子,看一下数据如何来自于我们的列村引擎 type f 系。 那么我的演示方便呢,咱们去创建一张新的表啊,保,咱们来保创一个什么?一个 table 叫 ump, 来保存新的员工信息。表结构也很简单,包含咱们员工号, ump number 呢?员工名字,我们的一栏, 它是个什么?我们的制服处呢?它包含你们的薪水啊,它表创建出来以后啊,咱们通过一个子查询, 往这个表里面呢,快速插入大量的什么数据啊?对,好吧,往表里呢,插入咱们的数据,多插入一些数据,通过只查询方式能够呢?快速插入什么?多条数据?对,好,这条插入语句我们多执行几遍,改下改下, 我们把这个文档多执行几遍,多插入若干条数据。数据插入完成以后呢,针对这张表开启它的列存功能,那么这个时候你再来执行查询语句呢,它将会读取我们的 type flash 的 列存引擎,通 过使用这种方式呢,能够去提高查询的速度。对,行存呢,适合执行我们的插入更新和删除。对, 好,这插入语句呢,咱们多执行几次,让它产生大量的测试数据,把它插入上万条数据吧。对,好,到八百多条了啊,很快就能达到上万。对, 好,现在的表里面呢,一共有多少条数据呢?怎么是应,就现在在表里面,只是应该 ctrl 操作, ctrl 下新,我们的什么 u n p 对, 好,这张表里呢,现在呢,一共有两万多条数据。好, e n p 是 我们的员工表,员工表,员工表, e n p 是 excel 员工表。 好,现在这张表里呢,一共有两万多条数据呢,如果你不开,请这张表的内存功能,默认只能够去查询 t k v 的 行寸金。现在呢,咱们针对 这张表开启它的列存功能。当你开启列存的时候,你需要指定副本 sum, 什么叫副本数呢?就列存存储多少份儿叫副本,叫副本的好,改写下 alter, 我 们的 table, 针对这张表 set 我 们的 type flash 开启列存啊,列存呢,设定副本数是几呢?这么简单的设置,副本数直接是我们的,什么我们的 e 的。 当你执行这句话以后呢,这段表示什么列存功能它就开启了。那么列存功能开启以后,当你再次执行查询语句的时候, type b 呢,会自动判断 你所查询的数据是读取 type v 更快还是读取 type 更快。通过把 sql 语句的呢执行计划打印输出出来, 你就能够判断出来,你所读的数据到底来自于我们的行存, 还是来自于我们列存好吗?执行一个简单的什么查询语句,那跟刚刚是完全一样的。好,在这条查询语句前面呢,加上一个关键字母叫做我们嘛, excel 把它的执行计划呢输出在屏幕之上,通过执行计划。