00:00
好,看完了CPU,接下来我们看一个什么呢?内存配置。内存呢,它主要有这么几个配置啊,大家注意。其实核心来讲应该是三个比较常规的,经常改,第一个是最大的内存使用量。最大内存使用量,那么这个参数的位置其实在U里面的,但老老一点版本在这里我们瞅一眼。嗯。这个就是我们看看能不能收到没有吧。对吧,他已经把它挪到了U里面,所以我这个文档还是修改一下啊U。这表示单次查询占用的内存最大值,那么在后期的演示可能有一些数据太大了,我的查询就会爆什么超过内存限制三点多个G,那是我虚拟机就那么剩余内存就那么多啊,还没达到十个G就不行了嘛,那你想想128G的机器。
01:04
内存你给多大?是分情况啊,第一种CK单独部署,那给多大一百28啊对,你想想咱们当时雅安怎么分配呢?也是不是给100你们做人留一线呢,对吧,你其他的系统服务是不是也得使用一点内存啊,你把都占满了,那怎么行对吧,那如果是共用呢,CK跟其他你想想雅安都占了100啊,留给CK还有多少啊,对吧?所以其实。你当然了,如果你数据量没那么大,他也用不到那么大内存嘛,你数据量不大也没事,比如说你给他设个呃,雅安稍微少一点嘛,你没办法紧巴巴的你就得拆分了,雅安比如说128G的,你可能给个九十八十,比如说80万,雅安给个80,然后呢,可那个耗给个20或者二十八三十这样。
02:04
没办法,但前提是你数据量不能太大,太大的话可能可里可耗20个G,可能也不好使啊,当然这个是上限啊,不是一下子就占用掉啊,是你执行了查询才会去占用内存了,跟雅安一样,你执行了任务他才会去申请资源,日常是不会的,日常是不会。好,我们也瞅一眼这个参数吧,之前刚才也看了吧,u.M在这里啊,默了十个G给大家算过了吧,你改一下就行了嘛,再加个零不就100个G了吗?改完记得要重启啊,那还有一个,这两个参数啥意思呢?都有一个关键词。External,另外呢,这个是对谁而言呢?Group而言呢,这个对谁而言,Thought而言就order好,那首先第一个词是什么意思?意思就是内存放不下,真的就我实在是刚才的场景啊,实在是紧巴巴,我只能给20个G,那怎么办?那假设你的查询语句里面有group,那它占用的内存要超过20个G,直接失败,跑步成功。你还有一种方案,设他。
03:18
他什么意思?达到这个值,比如说你设的是十个G啊,那我达到了十个G还需要用,那我就把原来的数据先刷写到磁盘。但是这样有一个什么问题呢?慢对吧,你没办法,你没资源,你是不是只能慢了。这是一个取舍的问题啊,那如果要设设多少,这个也是上限嘛,内存就它的一半。他的一半啊。那么另外一个是在order by设置的,呃,Order使用的指定order by达到这个值,它同样的内存不够用,刷减到磁盘一样的,那一般设多大呢?
04:10
也给个一半就行了。啊,给个一半就行,那么这个东西。其实。怎么说呢,如果你真的资源不太够,它效率是慢的非常多的。你想想,以前存内存,后来再加磁盘,得来回读吧,来回写吧,那这玩意儿慢的可能你自己都受不了,本来用click house就是为了快嘛,如果真的到那一步,你可能就头痛了啊。还有一个这玩意儿你不一定用得到,你看名字就知道了,Max什么什么土,什么种,这个是什么意思呢?就你删表的时候,如果这张表超过这个值,那你就删不掉。
05:00
比如说你设的一个G,你设的很小,这张表有十个G,你要删他直接报错。啊所不能删,那默呃默认值是多大呢?50个G够不够你用啊,一般是够的。一般是够,但是如果一些呃,数据量比较大的公司,一些大公司啊,可能就不够了,那你是不是要调大上限了,那还有一种方案,你把它设成零,零表示我不做校验,我管你多大,我直接删啊,所以其实这对关于删表呢,看你考虑安全性吧,好吧,那我建议是你设个零就行了,还限制它干啥是吧。真想删,有的是办法删的。好,这这几个内存配置啊,以前没考虑,现在你就得考虑了,你以前可不是像咱们现在这样装完直接就开始用了,那都是默认配置值啊,太低了吧。对吧,那时候才十个G是不是一怎么可能生产环境十个G就不行了。
我来说两句