00:00
好,那剩下一点点简单的啊,一个是,呃,不是简单物化视图这个东西在生产上他们可能会去用,也不是可能大概率会去用啊,也是非常好使的一个东西,那对于视图大家了解吗?2VIEW,好,View,那什么叫问题就来了,临时表不准确。比如说MY狗是不是也有病啊?好,他的视图是啥意思?就是你的circle逻辑把你存下来了。然后你查这张视图的时候,其实就是把那些复杂的操作,当你执行了一遍,相当于说什么呢?你做了,比如说你打如啊你打游戏的时候是不是有个连招啊啊,你连招是一加二加三加四加,比如说1223314是这么个连招,对吧?啊然后呢,你把它创建成一个视图,就相当于说你把它弄了一个快捷键宏对吧,比如说按个A,它就自动放这个连招了,那你下次说按一下A,就是查一下视图,那这个其实底层是帮你走了这个复杂逻辑啊。
01:14
所以咱们的视图其实保存的仅仅是一个操作逻辑,没有保存数据,视图不保存数据啊,那咱们这边叫固物化视图,是把它物化了,什么叫物化?我不仅把你的招给记住了,我还把你出招的效果我也存下来,也就是说我把数据也存下来了,这种物化视图你才真正可以理解为是一张表。是一张表。比如说啊,我举个例子啊,还是刚才的例子,你打游戏122,我随便来个连招,你把它变成了A这个连招,比如说按完之后,你会释放出一个大招,对吧,放了一坨翔出来啊翔是不是这个。
02:03
产生的效果呀,那么如果是物化视图,我叫他A撇啊,随便起个名字啊,他就是不仅把连招保存下来,把你这个大招的效果也保存下来了。你上一次的效果就是一坨翔,那你你再按几次,你去查一下这个视图,之前大招放了几次墙,你能查到,但如果是普通视图没有,他没数据啊。那这个咱们在后面章节专门来提啊,把它呃操作一遍啊操作一遍,那其他的注意事项呢,有几个啊,第一个查询垄断什么意思呢?他们查询是不是得放资源,如果你一个查询占用了大量的内存CPU资源。那这个时候你其他的查询是不是会被影响,他申请不到资源的吗?那这个时候就是咱们所谓的服务学分。
03:02
啊,服务雪崩,其实也什么叫雪崩啊。就不行了呗,就像你上厕所蹲坑,如果只有一个坑,然后一个人他存了好几天的量,那今天他突然那个感觉来了,疯狂的释放掏空自我,那这个时候他是不是一蹲就一个小时啊,那你后面在他后面排着,你是不是进不去啊,你是不是得回家换裤子呢?对吧,这不就雪崩了吗?你这你你崩不崩了,你说啊,那这里呢,其实咱们有些参数可以限制,一个是查询时长,也就是说我最多。单条查询,那你执行多久,超过这个时间你查不出来,那你就就把你抛弃,把你中断,你就查询失败啊。就像某些公司限制员工一天上厕所的时长嘛,比如说你超过半小时,他就开始播放语音,对吧,连你什么什么多久请注意啊,及时啊,解决什么什么之类的。
04:09
那除了这种呢,还可以有其他的啊,呃,这是一个超时,这是一个查询超时。那么还有一个是关闭虚拟内存,这个看情况,说实话看什么有没有钱。再具体一点,有没有资源?咱们之前呀,呃,机器是不是都开着虚拟内存呢,对吧,不开是不够用啊,就咱们虚拟机其实也用了虚拟内存嘛,对吧,那么你虚拟内存是不是得跟真正的内存做一个交换呢?那这个时候怎么办呢。他的交换其实是这种叫一句话来总结叫什么。
05:02
是吧,咱们不老是说什么计算换空间,空间换什么,对吧,这牺牲了什么效率。对吧,新生的效果,那如果你把虚拟内存关了,是不是完全使用你真正的内存,那你速度是不是就上去,但是这有要求啊。你用虚拟内存是被迫的,资源不够了,机机器不够了啊,资源不够,那你只能这样,所以这个你就看情况,所以我说的是资源允许的情况下,因为有些公司确实有钱了。有钱。还有一个。呃,闹值他们前面提到的是不是有一个not值的问题啊,我们说最好不要存now值,它是不是首先两个问题,第一个他会单独存一个文件,第二个不能被索引,效率慢了,对吧?所以呢,咱们也可以考虑配置这个join use not。
06:02
是一个配置,它是什么呢?左表中的一条记录就join嘛,左右不管是什么join啊,在右表中不存在,右表的字段返回的不是闹了,而是什么默认值,比如说你是int类型,默认值就给什么零,而是是类型的默认值,不是你设的值啊。咱们之前讲的是你主动把它替换掉啊。就避免闹子的一个问题啊,呃,还有一个批量写入时先排序,这其实很好理解,适用于各种场景,各种框架,你想想一堆数据,比如说一呃10万条数据,我一次性要插入,我乱糟糟的插入跟有序的插入是不一样。其实这个区别主要在哪?有的同学说不都是10万插进去吗?咱咱们做了什么分区啊,是不是有些数据是这个区,有些数据是那个区的,那你如果数据很乱,是不是一会比如说你是三个分区,那你是不是来一条啊,插这来一条插这来一条又插,这来一条又插,这是不是很乱了,乱七八糟,但如果你是有序的主数据不可能在一起的,这几条数据都属于这个分区了。
07:17
就相当于说卡不卡有个东西为什么高效读写数据写嘛,那是不是有点类似这个原理啊,对吧,有点类似这么一个原理啊,或者说啊不用或者这个应该好理解啊。如果你是无序的涉及分居数特别多,那可能他是不是得干嘛墨迹啊,合并分片呢,他可能合并不及时,会影响咱们的性能啊性能另外一个经验就是一个经验,关注CPU。对于咱们的click click house来讲,CPU使用率达到50%,它的查询会出现波动,比如说咱们前面一直查某一个查询是不是都是0.8,比如说0.8秒左右啊,但是如果你执行这条查询的时候,CPU的资源已经被占了,比如说80%,那你可能这条查询就没那么快了。
08:14
就没这么快,那你想想咱们在实际生产环境,肯定不是你一个人一条查询,像咱们现在这样查一下,然后就没了,是吧,可能是一直在查,一直在查。嗯。那这个有什么好的办法吗?最好的办法是加。加什么对,加资源。那如果没没法加资源呢,那就优化你的语句呢,怎么优化。前面不都优化吗?你是不是可以带出来对吧,你要灵活运用啊,啊要灵活运用。
09:03
这是咱们一些事儿啊。
我来说两句