嘿,大家好,不知道你是不是也跟我一样,作为开发者,最让人抓狂的时刻之一就是发现自己写的某个 sql 查询拖慢了整个应用。 别担心,今天我们就来聊聊这个,用一个超强的工具让你的查询飞起来。没错,就是这个问题。估计每个开发者都问过自己无数遍,为什么我的查询能这么慢啊?这个问题可不小啊, 它背后可能就是用户在那焦急的刷新页面。服务器呢?在机房里痛苦的声音。但好消息是啊, mexico 其实早就给了我们一个非常强大的工具来帮我们找到答案。 而且你要知道啊,这可不只是慢个几毫秒那么简单,一个糟糕的查询,它会死死的锁住数据库的宝贵资源,然后呢,用户体验就会直线下降,甚至在极端情况下,整个服务都可能崩掉。 所以你看,解决这个问题真的是至观重要。好,那要解决问题,我们得先搞懂 my circle 是 什么想的。这里就得提一个概念,叫执行计划。 你可以把它想象成在 my circle 真正去刨你的 s q l 语句之前,它的那个优化器啊,会先在内部制定一个周密的计划, 就像我们用 gps 拿到一样,它会规划出一条找到数据的最佳路径。那我们怎么才能偷看到这个计划呢?很简单,用一个命令就是 explain, 用起来真的超级简单,你都不用改你的 s q l, 只要在你那条慢悠悠的 select 语句前面加上 explain 这七个字母就行了。 最关键的是,它不会真的去跑那个查询,所以你不用担心它会更慢,它会立刻给你返回一份简讯报告,嗯,也就是我们刚才说的那张给 s q l 拍的 x 光片。 好,现在 x 光片拿到手了,那上面的这些条条框框都代表什么意思呢?别急,接下来我们就来学习一下怎么看懂这份 mycircle 的 诊断报告,然后快速地定位到性能瓶颈到底在哪儿。 在这份儿报告里有很多列,但你第一个也是最应该看的就是 type 这一列。说它是全场最佳一点都不过分,因为它最直接地告诉了我们, my sql 到底是用什么方式去连接表查找数据的。 这绝对是我们诊断性能的第一步,也是最最关键的一步。你看这张表,它就把 type 值的性能等级给咱们列得清清楚楚, 从上到下性能是越来越差。最顶上的 system 和 const 就 好像是精确制导,导弹一发就中,超级快。然后呢, eq rev, rev 这些都算不错,说明用上所引了。 但你要是看到了最底下的这个 all, 那 可就糟了。这就是大名鼎鼎的全表扫描,绝对是我们性能的头号杀手,要不惜一切代价干掉它。所以啊,大家记住一个关键目标, 当你在优化查询的时候,你的目标就是让这个 type 值怎么着也得达到 range 这个级别。当然了,如果你想当个优等生,那就应该奔着 raf 或者 eqrf 去。总之,只要你一看到哦,脑子里就得马上拉响警报,亮起红灯。 好,我们再来看两个很有意思的列, possible keys 和 key。 possible keys 呢?是莫斯科觉得,嗯,这些锁瘾好像能用上,而 key 这一列才是它最终拍板好就用这个了的那个锁瘾。 这里有时候你会发现一个奇怪的现象,就是 possible keys 里明明有锁瘾,但 key 那 儿却是空的, 这是为什么呢?其实啊,这是因为 myico, 它是个成本优化器,它会自己算一笔账。如果它觉得你的数据量特别小,直接扫描全表比绕一圈走锁瘾还快,那它就会很聪明地放弃锁瘾。 接下来,这个 keylen 也挺有用的,尤其是当你在用这种多列的联合锁瘾时,这个数字告诉我们这个联合锁瘾到底有多少部分被真正用上了。 如果这个数字比你预期的要小,那很可能就意味着你的联合缩影只有一部分生效了。这往往就是因为我们后面马上要讲的那个非常重要的最左前缀规则。 最后,我们来看看 extra 这一列,你可以把它看作是 mysql 给你留下的额外备注,或者说是小纸条。 看到 using index, 这是个天大的好消息,这说明你实现了传说中的覆盖锁眼效率非常高。但是如果你看到了 using file sort 或者 using temporary, 那 可就要警惕了。 这通常意味着 mysql 不 得不在内存甚至内存上创建临时表或者进行排序。这些操作都非常非常耗,性能是妥妥的危险信号。 好了,到这里,理论知识我们差不多就储备够了。接下来咱们就进入实战环节,看看怎么用刚才学到的这些东西来避开一些大家在写 s q l 时最容易掉进去的锁瘾陷阱。 第一个也是最重要的一个陷阱,就是破坏了联合锁瘾的最左前缀法则。 这个法则其实很好理解,你可以把它想象成搭积木。假如你有一个 a、 b、 c 三块积木组成的联合锁芯,你必须先用 a, 再用 b, 再用 c, 必须从最左边那块开始,一块接一块地来,绝对不能跳过中间的。 比如说,你直接用 a 和 c, 那 就不行了。哇,你看这张对比图,简直是教科书级别的案例。左边这个查询,它直接就从 h 列开始查,完全跳过了缩影。最左边的 name 列,结果是什么? 灾难性的 type o 全表扫描,再看右边查询,老老实实地从内幕列开始,缩影立刻就生效了,得到了一个非常高效的 type ref。 这简直就是天堂和地狱的区别啊! 好,第二个打坑,千万千万不要在 words 里对已经加了缩影的列去用任何函数或者做任何计算。 为什么呢?因为一旦你这么干了, my sql 就 蒙了,它就没法直接用缩隐了。你想啊,它得先对表里的每一行都算一遍你那个函数的结果,然后再去比较,那缩隐不就白建了吗? 又是一个特别鲜明的对比。你看左边,我们就在内幕列上用了个 left 函数,想取它左边几个字母,结果呢?缩隐瞬间失效, type 又变回来,让人头疼的噢。 而右边,我们只是做了一个简单的等值比较,缩影就完美的工作了,它还不是 ref。 所以, 记住这个原则,永远把计算函数这些操作挪到等号的右边去,让缩影列保持干净。 第三个常见陷阱,跟 like 模糊查询有关,我敢说很多人都这么写过,就是用百分号儿,百分之累。 你可能觉得很方便,但这对于缩影来说是致命一击。你看啊, like 雷, 因为这个通配符百分之百在最前面, mexico 就 彻底不知道该从缩影的哪个地方开始找了。就好像一本书没有目录一样,它只能放弃缩影,一页一页地翻,也就是进行全表扫描。 但是你看右边,只要你把通配符放在后面,写成 like 雷百分之百,情况就完全不一样了。 mac 就 可以很聪明地利用锁瘾进行一个 range 范围扫描,性能要好得多得多 好的。到目前为止,我们已经了解了 explain 的 原理,也看了几个最常见的锁瘾陷阱,现在咱们来总结一下。我给你准备了一份可以随时参考的锁瘾陷阱,现在咱们来总结一下,我给你快速掌握查询优化。 这张备忘单就非常直观了。假设我们有一个建立在 a、 b、 c 这三列上的联合锁隐, 你看,不同的 where 子句,对锁隐的使用效果是完全不通的。 where a 等于三没问题,用上了 a, a 等于三 and b 等于五,也很好, a 和 b 都用上了。但你看,一旦你跳过了中间的 b, 直接用 a 和 c, 那 c 就 用不上了。 或者你对 b 用了范围查询,比如大于号,那后面的 c 也用不上了。最后对 b 用了前导通配符,结果也是一样,只有 a 生效,所以这个顺序和用法非常关键。所以请大家一定把这句话刻在脑子里。 一个 type 是 o 的 查询,它就是一个等待爆发的性能瓶颈。以后你在自己的代码库里看到它,就要像发现一个严重 bug 一 样,马上把它揪出来,干掉它。 现在你已经掌握了这项非常实用的技能了,其实整个优化的流程可以简化成非常简单的三步, 第一,在你的应用里找到一条慢查询。第二,在它前面加上 explain 这个关键词,看看它的执行计划。第三,检查 type 列, 如果它显示的是 a, o, l 或者 index, 那 么恭喜你,你找到了一个绝佳的优化机会,然后就用我们今天学到的知识去搞定它。 那么最后的最后问题来了,在你的项目里,你准备去分析的第一条儿慢查询会是哪一条儿呢?别等了,现在就动手试试看吧,让你的应用从今天开始飞起来。
粉丝165获赞590

what's up guys welcome back! 如果你现在正在使用 cloud code 的 话呢,一定不要错过今天所有节目。 antropic 呢,刚刚发布了一个最新的王炸功能啊,它可以去让我们的 cloud code 现在可以每天自动地去定时任务去触发我们的自动化工作流了,这 意味着什么呢?这意味着现在的卡扣等于说是一个二十四小时不停为你工作的员工啊,他二十四小时每一分钟都可以为你去工作。在你以前建立的每一个自动化工作流里面,每一个技能里面,每一个 skill 里面呢,他现在可以直接去为你去定时的去执行了啊,威力的话呢,可以说是 之前的十倍。今天的这一视频的话呢,我会手把手的去教你如何去设置它,让你去少走一些弯路。那我们分话不多说,我们直接开始吧, let's go, ok, 大家可以看一下啊,这个呢,就是啊 cloud 这个 desktop 的 这样一个,大家可以看到一个界面了。那之前的话呢,呃,在这个 co work 里面的话呢, 你可以看到这边有个 schedule 啊,如果你点的话,你在这里可以直接在这里每天我们想自动执行什么样的任务,对吧?什么样的,这个功能就会显示在这里了,你可以看到这个界面啊,点这边 schedule 了以后呢,你这边可以去 schedule 新的一个 task, 然后呢,这边可以加名字 description, prompt 啊,这些都是可以的。 然后呢,因为这个的话呢,之前是这个你必须是 max plan 的 人才可以用的啊,那你必须是这个 max plan 才可以用的,现在好像是 pro 也可以了,但是我不确定,因为我不是 pro plan, 所以 我不太知道。但是现在的话呢,你 即便不是 max plan 的 话呢,你用这个 clock code 啊,其实呢也是可以去现,现在呢也是进行 schedule, 因为它这是他们刚出的一个功能,所以你完全不需要担心了。 ok, 现在只要进到这个 code 里面的话呢,你就可以看到这边可以有一个 schedule task, 这边有两种方法你可以去加啊,第一种的话呢,就是你在这边点 new test, 然后这边你可以起名字描述,然后这边写一个 prompt 啊,你想写什么 prompt 都可以。然后这边的话呢,选择,你想这里可以选择 folder 对 吧?这边可以去选择 你想选择的这个哪一个工作流,对吧?呃,在你的电脑里的,因为这是本地的嘛。然后呢,你可以这边是时间啊, daily 啊, weekly 啊都可以,时间怎么去选择? 然后每天早上或者下午什么是时间,几点都可以帮你去,就自动的去出发了。那比如说我这边的话呢,是创建了这个每天早上去帮我选择一些 stock 啊,之前的话呢,我在上期节目也做了,怎么样去通过 tiktok 的 一些一些比较趋势,一些爆火的视频去挑选这些 stock。 那 我今天的话呢,就让他每天早上去帮我跑这个,当然你也可以去跑一些别的东西,比如 说明天早上给你跑一些报告啊,每天早上帮你跑一些新闻啊,什么这些东西都可以啊,任何的工作流,其实你现在呢都是可以去啊 schedule 不 用手动去跑它了,可以去自动的去跑它。 第一个方法是点这个 new test, 你 可以在这边啊添加,那第二个的话呢,你其实可以开个 new session, 然后在这边的话呢,选择好自己的这个工作流了以后呢,你再 这边可以直接跟他讲,帮我把这个工作流加载成每天早上几点几点,或者是什么时候时间自动去出发的一样,一个工作流,它就会自动帮你加。大家可以看到这边的话呢,我有两个啊,这个的话呢,就是我自己加的, ok, 它这边的话呢,会选择 description, 然后呢这个 instruction 是 什么?这边都是我写的 ok, 每天早上几点啊?你点开以后可以看到它在跑的 这样一个样子,在这里啊,会显示给我们。那还有一个的话呢,就是这边啊,是我让他自己加的, ok, 就是 说我在这个 session 里面可以让他自己加,我直接跟他说, ok, 你 每天早上去帮我跑这个 ok, 所以呢他就会自动帮我们加,他自己会编辑 description, 还有会编辑这些 instruction。 第一步,第二步,第三步,因为他会先读取我们的这个文件,然后在这里面会选择一些我们的这个 instruction prompt 啊,会写在这里, 然后你可以看到这边的话呢,其实他有是在跑的,比如说这个啊,比如说你在他在跑了以后呢,他可以告诉你他跑了什么东西,然后呢他最后给你输出了什么样的东西,跑了多久,这些都会是在这里,然后会告诉我们。 当然的话呢,这边你可以跟他说啊,帮我发个 e mail, 或者是帮我整理到 notion 啊,都是可以的。 ok, 那 其实加的话呢,其实很简单,就是这两种方法,对吧?一种是在这里面直接加,另外一种呢是在这个 section 里面,这 是直接加,都非常简单明了的两种方法,就直接可以加了。那加好以后很多人说,哎,那 harry 这个我其实可以 直接写个 python 脚本,让他直接跑也可以啊,这个跟那个什么不同,对吧?那他其实最大的一个不同点呢?最厉害的一点呢,也就是说他有一个自我修复能力。什么叫自我修复能力呢?就是说他如果在跑脚本的时候,或者跑工作流的时候碰到了任何问题,他会用第三种方法去想方法去解决这个问题,最后把它达成 ok, 而不是说一般的写的那个传统的方式的话呢,他如果遇到什么样的问题或者出错,可能就会停止了,会不动了。 ok, 但是呢他现在的话呢,他这个自我修复的能力呢,他可以自己去修复这里面的问题,去帮我们最后达成我们这样一个执行的这样一个目的, 这个随着时间不断的去推移,然后自我修复的能力,自我改善的能力,其实是最大的亮点啊。那基本说完了,这个操作呢,其实很简单,但是呢啊,我现有 几点大家需要注意的一些注意事项啊,就是说以免你跑的时候会报错或者说出错,这个那非常重要。那第一呢,就是说因为他是这个是在本地这个运行的,所以呢,你一定要保持你的电脑是开机的情况,不能是关机,如果是关机的情况下呢,他是 不会自动运行的啊,除非你把它直接啊上传到这个云上面,或者是在服务器上面啊,它是会自动跑的,要不然的话呢,你电脑如果是不开机的话呢,它是不会自动跑的,这是第一点啊,非常重要。当然呢,它有一个七天的这个追溯的这样一个记忆啊,就是说如果你关了机了,那比如说你今天早上想让它跑这个东西,但是你 电脑没有开,对吧?那他会在你开电脑那同一时间呢,瞬间马上又开始去记忆起来这个你让他跑的这样一个工作流,他会再去跑, ok, 这个时间的话呢,是七天,那如果超过七天的话呢,比如说你出门旅游一个月,或者是出差一个月,那回来以后他是不会跑一个月之前他只会跑一个月,你回来这天开机这一时刻开始往前推七天的这样一个记忆, 所以呢,这一点是非常重要,大家一定要记住。还有一点呢,因为他是一个没有人监控的情况下呢,他是他自己跑的一些程序,那这个时候呢,我们最重要的就是说,你不希望他把你的任何重要的代码或者是重要的文件或者是档案直接删掉,对吧?所以呢,我建议每次你在设置一个新的这样一个自动化工作流的时候呢, 你先去自己手动跑一次,让他知道你会给他什么样的权限。大家可以看到这边的话呢,我给他的 allow 的 权限是这些的命令,对吧?所以呢,你可以给他这些命令啊,让他 除了这些命令以外,它不可以有其他的权限,对吧?防止它不小心删除了你非常重要的一些文件或者是代码。 ok, 所以呢这个是非常重要一点,大家一定要记住, 还有一个非常重要的一点呢,就是说我们每次再次开一个新的 session 的 时候呢,它会忘记我们之前跟它对话过的东西,所以呢它可能会忘记我们之前给它去让它修复了一些东西,或者是让它更改了一些东西。那这个时候呢,我们可以在这个 prompt 里面,就是这个 instruction 里面可以去加一些东西啊,比如说 我可以让他在这里加一段话,就是在每次执行任务之前,先读取上一个指定的文件,日制结束任务之后,把这次的结果遇到的问题覆盖写到这个文件里面。 所以这样的话呢,他每次在执行下一次任务的时候呢,他就能唤醒之前 ai, 之前这个继承我们上次告诉他的东西或者记忆里的东西,他会 唤起这个 ai 记忆,所以呢,我们不会说之前告诉他的东西啊,他没有记住,然后还要去无限的去告诉他。那这样的话呢, 一个更好的问题就是他有一个迭代的功能,所以呢他会随着时间的推移,他会一次比一次好,一次比一次优秀,对吧?才有个自我学习的功能啊,这个是非常厉害,非常强大的。 ok, 那 我们直接把它加到这里,然后直接点 safe 啊,就可以了,所以呢他之后呢就会有一个每次都会迭代的这样一个学习的能力出现啊。 说实话现在这个 schedule test 这个功能的话,现在只能在这个啊 desktop 这个 app 上面啊去运行,它并不可以去用啊,我们其他的一些 ide, 比如说啊 vs code 啊, cursor 或者什么 antigravity 上面去运行, 但是我觉得这个东西呢,是一个趋势,它在不远的将来,这些不管是一些 kle 也好,或者是一些 ide, 它肯定会慢慢地推出这些功能的,所以呢,在不久将来 vsco 它肯定会是会推出这些功能的。所以呢,现在如果你想用的话呢,你就直接去用啊,比如说你在 ide 上面已经编好了,或 是在 cloud 里面已经编好了一些这些自动化工作流的话呢,你直接让下载一个这个 cloud 的 这个一个 desktop 这个 app, 然后的话呢,你就可以在这里面通过 cloud 的 方式去直接跑它了,对吧?所以呢,这个是没有问题的啊,其实也不是特别麻烦,但是我更想的看到的是,以后我们在 i d e 里面, 比如说完成任何所有的工作流的时候呢,我们可以直接告诉他,以后每天早上六点直接帮我去跑,这样的话呢,对我们来说是更加方便的。 那今天的话呢,只是一个 quick update 啊,这个功能的话呢,我觉得是非常好用的一个功能啊,之前的话他没有,那现在的话他有了啊,那基本上可以说是有一个非常强大的这样一个更新啊,我们可以让他自己的二十四小时不停的去帮我们去跑非常多的一些设置好的一些工作流了。 那今天的话呢,我也想大家看到这期视频的话,我想大家自己去试一试,自己去设置一些每天早上,比如说帮你抓一些 ai 的 新闻啊,帮你抓一些啊,你想要的一些东西啊,或者发一些报告啊,或者是最简单的每天早上把你 这个谷歌里面的行程,或者是每天早上把你这个日历的一些行程,会告诉你今天有什么什么什么样的工作,或者又要去哪里一些日常上面东西呢,可以每天早上发给你,我觉得这都是一个非常好的一个测试。 ok, 那 如果你也喜欢今天节目的话呢,一定在下面点个赞,把下面赞点烂好吗?然后呢,还没有订阅我频道的朋友,一定要订阅我的频道,打开小铃铛,所以不再错过任何发片和直播时间。今天节目就到这里了,下次再见了,拜拜。

openclaw 绝不仅仅是个用来聊天的对话框,通过安装这七个核心技能包,它能直接变成你的全能助手。 它不仅能像真人一样操作浏览器,抓取全网数据,还能帮你盯着网页价格,或者在每天固定时间自动处理文件。简单来说,只要配置好这些技能,你就能把那些枯燥的重复性劳动全部交给 ai 自动流转,实现真正的生产率翻倍。 我们来看第一个也是最受欢迎的技能, agent browser, 直接执行一条安装命令就能搞定,你可以把它理解成 openclaw 的 眼睛和手。有了它, ai 就 不再只是个聊天框, 它能像真人一样去打开网页,点击按钮,拖动滚动条,甚至能把看到的屏幕内容直接截图存下来, 或者把网页里的信息抓取出来。装完之后,有两个关键配置,建议你先设好。首先是 headless 模式,把它设为真,这样浏览器就会在后台静默运行,不会在你干活的时候突然弹出一个窗口吓你一跳。 第二个是 timeout 超时设置,建议设为三万,也就是三十秒,这样能保证那些加载比较慢的网页有足够的时间跑完,避免任务中途报错。 在实际用的时候,你直接给他下指令就行,比如你跟他说去帮我把某个网页截个图存到地盘,他就能自己去执行。 或者你想整理资料,让他去新闻网站把前十条标题抓下来,理成表格,他也能听懂。甚至更复杂的填表任务,你只要把信息给他,他就能自己去网页上找输入框填好并点击提交,全程不用你动一个手指头, 这个技能在工作里非常能打。比如你可以用它做价格监控,让他每天自动去瞅一眼商品有没有降价,或者做竞品分析,让他盯着对手的官网看有没有发新产品。基本上只要是你在浏览器里需要反复点的反复看的枯燥活,现在都可以丢给他去全自动运行。 这就是 agent browser 成为最受欢迎技能的原因。如果想让 open core 拥有实时感知世界的能力,你就必须安装 brave search, 这个插件是 ai 获取最新资讯的申明线。安装之后唯一的动作是去 brave 官网申请一个 api key, 别被 a p i 这个词吓到,其实就是注册个账号,拿川字符填进去。免费版,每个月提供两千次查询,这对个人用户来说完全够用了。配置好之后,你就可以直接问他当天的行业新闻或者最新的政策变动。他给出的答案再也不是几年前的陈旧数据, 而是鲜活的实时动态。如果说搜索是帮你找信息,那 web scraper 就是 在帮你洗数据。它的强项是把网页里那些乱七八糟的内容变成整整齐齐的表格。比如你把一个购物网站丢给他,让他提取所有产品的名称和价格, 它几秒钟就能凸出一个 excel 给你。或者你想收藏文章,它能自动剔除广告和侧边栏,只抓取干净的正文并存呈 markdown 格式。这种对非结构化信息的处理能力,正是将 ai 真正转化为生产力工具的关键一步。 装上 chrome 插件后, open core 就 有了精准的时间观念,它的价值在于把你的大脑从那些定点发生的琐事理解脱出来,安装非常简单,异形命令搞定。 配置好之后,你就可以像定闹钟一样给他下任务。比如设定每天早晨八点准时去查天气,然后直接把结果发到你的飞书上。这种一旦设定就永不停歇的自动化,才是真正的省心。 如果说 chrome 是 按时办事,那 web monitor 就是 盯着变动在干活。你只需要给他一个网址,再设个触发条件, 比如某个商品降价超过百分之十,或者某个政策页面有了更新,就会像个二十四小时不睡觉的哨兵,第一时间把变动发给你。有了它,你再也不用手动去刷新网页看有没有消息了,信息会自动跑来找你。 最后,这招 file system 技能专门对付你电脑里那些乱七八糟的文件。无论是想把几百个 pdf 批量转成 word, 还是想让它把下载文件加按类型自动归类,它都能秒记完成。配合前面讲的监控和抓取技能,你就能实现从网上自动搜资料、自动下文件,再到本地自动整理的全链路闭环, 这才是专业玩家的办公姿势。如果你觉得 ai 每次聊天都像个健忘症,那一定要装上 memory 这个技能。它能让 openclaw 拥有长期记忆。 比如你告诉他领导的联系方式,或者你的工作习惯,他就再也不会忘了。下次你直接说发邮件给老板,他会自动去脑子里搜索那个邮箱地址,不用你再重复一遍。这种越用越顺手,越用越懂你的感觉,才是真正私人助手的样子。 咱们来看个真功夫,怎么把这些技能包串起来用?比如做一个每日资讯简报,每天早晨七点, openclaw 会先用搜索技能找最新的 ai 新闻,接着调动浏览器进去抓正文,然后自动洗掉广告,总结干货,最后赶在你起床前发到你手机上。这套组合拳打下来,你每天早上刷网页的半个小时就全省下来了。 对于做运营或产品的朋友,这招竞品监控简直是神迹。你让 openclaw 每天中午去对手官网截个图,然后跟昨天的照片做对比, 只要对方偷偷改了个价格,或者上了一个新广告位, ai 就 会立刻抓到这些像素级的变化,并给你报警。这就像在对手公司门口雇了个不睡觉的哨兵,所有动作都在你的掌控之中。最后咱们说个保命的功能,自动备份。 你可以设好每天晚上十一点,让他自动把你电脑里最核心的工作文件夹打个压缩包,然后传到云端备份,整个过程完全不需要你操作, 他在后台自己就干了,最后再给你发个备份成功的消息。把这些技能玩转了, open claw 就 不再只是个聊天机器人,他就是你最靠谱的数字分身。

执行 update 的 语句,你以为数据库是直接改错,至少要经过这三道关卡。第一道连接器,就像是图书馆里的保安,先查证件,密码不对直接拒绝,权限不够,想都别想。 临界器的职责就是印证身份,检查权限,尽力临界,没过这一关,连大门都进不去。第二道分析器,就像是前台登记借书单,先要看你借什么书,有没有写错表名。如果 c 口语法不对,直接报错。 此法分析拆解成 sql 成单词,语法分析检查是否正确,最后生成一棵解析树,把 sql 整理成买 sql 能看懂的格式表,不存在字端不对,全在这一关被拦住了。 第三道优化器,就像是图书管理员查目录决定怎么找书一样。 update 一 张用户表,到底应该走哪个缩影呢? 全表扫描需要读一百万,行,走缩影呢?只需要一百行,优化器帮你算成本,选最便宜的。看到这一个 plan 结果了吗?走主键缩影只需要扫一秒。这就是优化器的智慧, 连接器验证身份,分析器懂语意,优化器寻路径,这三关过完才开始真正的动数据。关注我,每天帮你少走一个弯路。

青龙面板远程代码执行漏洞开源项目青龙是一个定时任务管理面板,在 github 上有一万九千个 star, 打开方法进行搜索, 大家可以看到已经找到两万九千台,通过这条代码就可以实现远程代码执行,在开里下直接执行这条命令回车,大家可以看到 id 命令已经运行成功, 能运行 id 命令就可以运行反向 share, 我 们来试一下 nc 监听一下四十四,这是零六四反向 share 命令,把它复制一下,来到开底下输入管道 face 六十四,回车,对这段代码进行一下 face 六十四编码复制一下 替换到 id 这里,替换完 id 命令以后,记得背四六四解一下码,然后拜师直行回车,再次回到 nc 监听上,大家可以看到青龙面板已经 建立绘画 yammy, 你 是 root 工具和文档,在这里一共一百八十一兆币,如果喜欢点个关注。

maccode 是 如何保证数据不丢失的呢?三重日治断定也能恢复?执行器接到 arbot 的 一句申请的执行计划,先找到存储引擎,存储引擎说等等,先加锁, 防止别人同时改同一行数据,先锁住这一行,其他事物必须等加完锁就直接改吗?还没有。先写 undo log, 万一要 roll back 呢?再写 redo log, 万一断电了呢?最后才改缓冲池的数据页。 改完数据再写一个编 log, 这个是主存复制的,需要 do log 记录的是旧日制回滚 redo log 记录的是物理日制,编 log 记录的是 sql 逻辑,这就是 my sql 的 三重保险。 改完数据就直接落盘吗?错,要先写 double write buffer, 为什么呢?因为数据库的页是十六 kb, 操作系统的页只有四 kb, 如果写一半断定了呢?这就是部分写故障数据页直接损坏。 double right buffer 就是 这个保险箱。先把数据页完整地顺序地写到这里,再去刷判数据文件。所以以此 update 的 背后, 第一执行器调用存储引擎,第二存储引擎新枷锁进行保护。第三三重置零环保障第四 double write buffer, 防止数据页损坏。这就是工业级数据库的生存法则。关注我,每天帮你少走一个弯路。

大家好,今天我给大家带来一个全新的东西,这是我们社区最新开发的一个全新功能,就是定时任务功能,这最近大家都知道了, 呃,大龙虾 open claw 可谓是火遍全网,然后它里面最有意义的一个事情就是可以帮我们定时,然后 啊自动的执行我们的一个个人的任务。那么我但是大龙虾的安装我们知道是比较困难的,那么我就给大家做了一个简化,把它整合到我们现有的 internet 平台里面,然后比如说 你只需要掏出微信,现在你输入五分钟后帮我开灯,然后就会自动帮你进行智能体的一个触发。 当然你可以设置每日的新闻的获取,那么它也能够自动帮你进行获取,而至于你能够做什么事情,这就取决于你安装的技能跟你的一个 m c p 端点的一个配置,这样子的话就非常的方便了。好,谢谢大家。

定在零点的任务,零点五分才执行,别怪网络是叉叉教堡的驾校死穴坑了你,你的任务全被堵在数据库门口了,为什么?看原码?叉叉教堡为了防止重复调度,用了 select for update 悲观锁。当上千个任务在整点同时出发时,所有调度县城都在抢着一把 db 锁, 数据库连接时打满,调度器直接堵塞,导致严重的调度丢失,怎么救?第一,物理打伞别全定在整点,改用零一零三触风触行。 第二,架构升级,如果任务量破万,放弃 db 锁架构,改用基于时间轮的 power job, 它是内存级调度无锁。别迷信开源框架,任何基于数据库锁的调度都有性能天花板,你的任务还在抢锁吗?

各家 ai 都悄悄上线了一个强大功能,但被绝大多数人都忽略了。用好这个功能,你每天的信息获取效率直接翻倍,而且你什么都不用干,他自己跑。 这个功能叫做定时任务,别着急划走啊,这可不是你手机里那个定时闹钟,闹钟只会叫你起床。而 ai 的 定时任务是帮你干活,它能够按照你设定好的时间,自动执行你给的指令,然后把结果推送给你。我给你举两个我自己在用的例子。第一个, 在接下来,我设了一个定时任务提示词,是这样的,每天早晚九点,分别给我推送财经、国际、时事、游戏、 ai 与科技四个领域的各十条精选新闻,并分析他们之间可能存在的关联性。 这意味着什么?我每天睁开眼,不用打开任何新闻 app, 不 用刷任何信息流,一份按照我口味定制的新闻简报就已经躺在那里了。 而且它不是简单的堆新闻,它会帮我串联不同领域之间的关系。比如今天英伟达股价波动, ai 领域刚好有一个新模型发布,国际上某国刚刚出台了芯片相关的政策。这三件事你分开看,是三条新闻,但它帮你串在一起看,就是一个完整的判断。一个人要是自己做了这件事情,每天至少要花半小时以上,现在我起床就知道了。 第二个更有趣,我在 grog 上定时任务提示词是这样的,你是马斯克,每天早上九点定时跟我汇报你昨天干了什么,在 x 平台发了什么,怼了谁,同时汇总你一整天的核心思考和决策逻辑。 您猜怎么着?因为 grog 本身就跑在 x 平台上,他每天天然能够抓取到马斯克在 x 平台上的所有公开动态, 所以每天早上九点,我就像有一个贴身秘书在跟我说,老板,昨天马斯克又跟谁谁谁吵了一架。起因是这个,他的原话是那个。同时他转发了一条关于火星之名的帖子。看起来 spacex 下一步可能要推进某某某计划了。 这比你自己去刷马斯克的推特有意思多了。因为 ai 帮你做了归纳和分析,你看到的不是碎片,是一个人一天的决策脉络。当然,你可以把马斯克换成你关注的任何一个人,任何一家公司,任何一个行业。 本质上你是给自己造了一个永不下班的情报员。而且这还不止是 jammer 和 grog, 其他 ai 也有同样的定时功能。也就是说,你现在手上的主流 ai 工具大概率都支持这个能力,只是你从来没有打开过, 所以今天就去试试打开你在用的 ai, 设一个定时任务,哪怕只是让他每天早上给你推送一句鼓励你的话也行啊,关键是先用起来,一旦你体验过每天醒来就有 ai 给你准备好东西的感觉,你就回不去了。这个功能不用真的亏大了。

在生产环境中,如果出现大规模的性能恶化,那么可以使用这条命令来查看当前正在执行的县城和查询有哪一些。可以看到我这里有两个县城正在偷懒睡觉,那么这里我们可以选择一个把它干掉, 这里使用 my secret add me, 后面跟着账号,然后跟着 care, 这里是十七,把这个干掉,这里输入密码, 这个时候来看十七这个就被干掉了。但是在生产环境中,我们不可能这样一个一个的去手动操作,那么这里我们可以把这些 id 给拿出来,把它输出到一个 linux 的 文件当中,如果你不知道它在哪个表,那么这里先来查看一下这个数据库, 它是在这个数据库里面,这里我们先把所有的列给查询出来, 可以看到这里查出来的这些和刚刚查出来的是一样的,那么这里我们就只可以查出某一列,这里的话查出的是 id 可以 看到,那么这里我们就可以把它输出到一个文件当中里面, 这里输入到 root 下面的 a 点 txt, 这里它有个错误,它不允许输出到其他文件当中,那么这里我们使用这个命令来查看一下, 把这个拿过来, 这里有个注意的点,这个是下划线,可以看到它是要输出到这个文件里面,那么这里我们就来改一下, 这样就输出过去了。这里还有个需要注意的点,就是这两个单词要大写,如果是小写它也是会报错的,那么这里就已经输出成功,我们到这个目录下面来查看, 这里使用 cd 进来,可以看到这里这个文件已经在,然后使用 ctrl a 可以 看到这里把这几个 id 都输出来,那么后面的事情就好做了,这里我们就可以写一个脚本,批量的把这些给进程给干掉。

定时任务,同一条任务突然跑了两次,跑着跑着就不跑了,或者半夜把数据库打爆。别慌,今天一分钟把 xxl gone job as scheduled, 怎么选,怎么避坑讲清楚。 先说 s 给主,它就是手机闹钟优点,快,真的快,写两行就能跑。单体服务,小任务爽,但只要你是多实力部署,它就会每台都执行。所以避坑就一句话,上级群,分布式锁,加密等不加锁等着重复跑,不密等等着重复发消息,重复写 酷。再说 xsl, 它像闹钟加后台加监控室,你能在后台看谁跑了,跑多久,失败了重试还能告警。 适合什么任务?多分布式,要分片要治理的场景,比如扫表批处理同步数据。但它也有个经典坑,重试可能导致重复执 行,所以你得把密等当成底线,分片逻辑也别写成摆设,不然不是漏跑就是重复跑。最后记住这个口诀,小单体 s schedule 上规模 x l job。

朋友们,不得不说,这个微信真的太牛了呀,现在只要你发个微信,直接操控小龙虾给你干活,今天我只用一分钟两个步骤帮你完成微信和小龙虾的字典。 好,我们开始啊。第一步,直接登录我和巴黎网站,看到没,然后在这里下载它的这个软件,下载了之后呢,在桌面你会看到这个绿色的小图标,然后打开之后就是这里,就是你的操作界面, 很简单,你直接在这里面输入你的需要让小龙虾做的事情就可以了。第二步,如何让他连你的微信呢?看到上面这个小人没?点击这个小人,下面有个 cloud 设置进来 cloud 设置,然后里面有集成,你看有企微,微信客服号, qq 机器人都可以连。那我们以微信为例,微信客服号点击配置,它会出来个二维码,然后立刻用你的 手机扫二维码,扫完配置成功之后,你的微信就会出现一个机器人,这个时候你给机器人只要发这个消息,他立马就可以给你开始干活了啊,不论在哪里,是不是特别简单。然后呢,这里面再提一下怎么来配置 skill, 小 龙虾配置 skill 才能够用。然后腾讯专门出了个 skill hub 啊,所有所有牛逼的好用的 skill, 而且非安全度非常高,你就在里面找就可以了。 skill 哈吧,怎么来安装小龙虾的 skill 呢?比如比个例子,我点开一个,点开一个,看到没?下面复制提示词,把这段文字复制,我复制,然后在微信里面发给你那个机器人, 这个时候你的小龙虾立马就装备了这个 skill 了,然后你就可以让他来开始干活了。怎么样,是不是特别简单?学会了吗?赶紧转发给你,让那些还想装小龙虾的朋友我是新农,那个让黄轩签名合影的这种人,关注我,一起向前奔跑吧!

哈喽,大家好,就像我一直强调的,定时任务是 oppo core 最强大也是最实用的功能。但是定时任务 oppo core 做的好不好呢?我认为是有点瑕疵的。首先 我要给大家展示一下它的新建定时任务这个窗口,你可能要填一大堆的信息,包括调度、执行,还有投递,还有高级等等。实际上大部分这些选项有没有用呢?当然是有用的,但是它对于普通用户其实没有那么有用, 因为大部分用户并不了解其中具体的含义,包括它的这个调度。你可能不是程序员的话,你很难了解 cron 是 个什么东西,其实它就是一个通过表达式的方式来设置你定时任务的一个执行区间。 嗯,这是第一个问题,那么第二个问题是什么呢?就是定时任务其实最关键的在于投递,投递是什么意思呢?其实你用 定时任务往往是用来收集新人执行特定任务的,对吧?那么 open class 在 使用定时任务的时候呢,它会把你的结果投递到两个渠道里。第一个渠道呢,就是你的常规对话,就是你和它正常的一些对话界面里,然后它相当于把结果 塞到你的消息列表里,作为一个常规消息来发送。另外一个是什么?它会新开一个 session, 就是 它会在绘画里为每一个定时任务,其实单独的 啊,开一个单独的定,单独的这个绘画。但是有一个问题,其实你在移动端里面,你是很难做到绘画的切换和查看的,就是说你在手机上去控制龙虾的时候,其实你并不知道你的定时任务执行在哪个三省里?当然你可以通过一些命令来去调用,但是大部分普通人不知道,那所以 综上所述,我在使用定时任务的时候也会感觉不方便,就是第一个就是创建的时候太麻烦了。第二个是什么呢?就是你不知道他投递到哪里去了,因为你在创建的时候很多人不了解 投递到主绘画,和他自己专门创建一个 session, 也就是创建一个独立的绘画的有什么区别?然后怎么怎么创建? ok, 现在这些问题你都不用担心了,因为在我研发的 pocket cloud 里面这些问题都解决了,那么我是怎么解决的?首先我们先打开 pocket cloud, 然后我们在右上角的设置页面里面找到这个定时任务,然后这时候你一看到我已经创建了四个定时任务,对吧?我们这时候再添加一个。 然后其实在 pocket cloud 里面创建定时任务,严格意义上来说只需要两步,首先它提供了一些自定义模板,然后这里我都不需要,我只需要告诉他我要做什么,对吧?帮我收集 最新发布的 ai 大 模型的信息, ok, 然后点下一步就好了。然后这一步呢?你第二步其实就是你只需要设置一些啊,它执行的间隔时间,我只需要设置每天就好了啊,就比如说我想设置到每天十一点吧, 然后我只需要点击下一步,然后这时候呢,你再点击创建任务,然后就完事了,就这么简单。你会很好奇为什么呃,那个 open call 内部去设置定时任务,它包含那么多选项呢?因为我其实在它的这个定时任务的上面分装了一层更简单的定时任务。 呃,我的分装有两个原因,第一个是其实普通用户压根不知道,不需要知道那些花里胡哨的东西。第二个就是我的这种分装可以让他百分之百执行成功。然后接着更关键的是什么呢?就是我们要解决我们刚才说的第二个问题,就是投递的问题,就是第一, 这个定时物投递到你的消息列表里,你万一没看到怎么办?然后第二个他如果没投递到你的这个消息列表里,你怎么办? 那么接下来呢,你会看到你的这个 pocket cloud 的 聊天页面里会有一个叫做定时任务的东西,今日任务的东西,你只需要点击它,你就会发现,诶,它是一个独立的页面,并且它收集了 open cloud 给你发布的所有今天执行过的 定时任务,也就意味着你绝对不会就是遗漏或者丢失任何一条今今日任务啊,那个定时任务执行的结果了,所以非常非常方便。这个我为什么开发这个任务,就是因为我之前在用各种各样的移动端去控制 oppo 卡的时候常常遇到。 第一我的定时物创建了之后不知道给我整哪去了。第二个就是啊,他可能我的这个消息里边很长,然后他可能不知道给我塞到哪一条消息之后了,然后我划着划着我就直接一漏了。这就是为什么我为 pocket 可研发这样一款非常简单并且有用的创建定时任务的 这么一个功能,也希望大家能够去看一下,体验一下,感受一下这功能设计的好坏。好,谢谢大家。

好久没有做视频教程了,之前一直在忙站点的功能开发,那么今天呢,为大伙带来的是买 coco 高可用系列的第一个视频,那这些内容呢,我们都会讲到,那么这节课程的最终目的啊,是为了大伙学会怎么去配置,买 coco 基于日指点的组成同步, 那么建议大伙跟着我的步骤去实操,那需要准备两台服务器,我们会使用 v m rack 的 两台服务器给大家做演示, 是两台三网精品的服务器。那么一般来说,咱们的数据库啊,它并不是直接面对客户的啊,所以考虑到成本的话,我们可以去买他们的美国原生服务器啊,这样成本会降很多。 好,那么这是我们两台服务器啊,这里主存我动改了名字,大家可以对应起来。那么首先的话,我们还是要重置一下系统,那么建议大家跟我一样,动是使用的变式啊,这样的话整个操作过程肯定不会出错, 然后这一个也是, 那这里放到一边就可以了,我们待会演示的时候会使用。好,那我们回到教程 啊,首先我们要来看一下买 c 库的主存同步,也就是复制他有什么好处, 那么我们可以使用复制功能啊,对数据库进行水平的扩展,那为数据库增加一个或多个备库啊, 那么通常呢,就是为了高可用啊,灾难恢复或者备份提供更多的选择。这里给大家举一些实质的例子呢,基本上企业都是这样做的,嗯,比如说最重要的一个就是用来分担它的负债 啊,比如你有数据团队对吧?需要分析业务数据,如果数据量很大,那直接在业务数据库做查询,那很可能会影响线上的业务,那这个时候你有专门的重库,让你的数据团队能独取使用,就不会影响线上业务了,对吧? 再比如你的主库所在服务器挂了,可以很快的切换重库,这个我们后续做高可用的客场会为大家演示,那又或者呢,你业务非常繁重,对吧?逻辑复杂,那么你也可以通过程序来控制进行读写分离。 不过待会有一点需要注意啊,主重同步啊,也就是这个复制并不能代替备份,因为你在主库做的操作会复制到重库啊。虽然我们在稍后会讲到日制格式,他是有办法去恢复数据的, 但是那种是最后的手段,而且足够足够让你合一伙的,所以该备份的时候一定要备份,那保险企业呢?还要进行异地备份。 那么 mycoco 本质上它的复制啊,是读取主库的二进纸文件,也就是 binlog, 然后存库去拉取这些日记啊,再去解析这些日记来操作并存放数据。那么你看到这个流程就知道整个过程它是异步的,也就是说存库的数据在同一个时间点,它是有一个延迟的, 所以你迫不得已需要切换数据库的时候啊,是需要想办法补齐数据的差异的。接下来我们来说一下 macbooking log 的 格式,你要做主从同步的话,这是必须了解的。 那首先是基于段的模式啊,它的日记啊,记录的是你的 cq 语句,而不是数据, 也就是说你做主存同步之后啊,他会把你的 cq 语句同步过去,然后呢会在存库啊重新执行, 那么他的好处呢,就是记录的日量相对较少,因为他只是记录 cq 语句,而不会把数据改动的前后啊,把你完整的记录下来,而且也不需要你存库的表定义完全相同,因为他是执行 cq 而已, 那么他的缺点有一点是非常致命的,就是某些函数啊,特别是一些随机的数据的处理过程中,因为你两边执行的是 c 库嘛,他到时候结果可能就会不一样 啊,这里就要非常注意,包括他可能一些自定义的存储过程啊,一些逻辑都会有这个问题, 因为存在这个问题啊,所以我们一般来说不会采用断格式作为我们的日制存储格式,然后这里有一些演示的 c 口,大家可以跟着去操作。那我这里就不演示了,因为我们待会会用行模式进行组重同步的复制,在这个模式里面我会完整的演示一遍。好, 然后来说一下这个行模式,这个模式是我们主流的日制格式啊,就买 c 口,五点七之后啊,默认的就是它了, 他的特点是把你真删改查的数据啊,就修改前还有修改后都记录下来,这样呢,就能避免组虫不一致的问题啊,因为他把数据都记录下来了,那如果你误操作的话,可以去通过分析二经之日记,然后对日记中的记录进行恢复啊, 他这种操作方式不像我们前面讲的断的,他只是记录 c 口,他会把所有数据都记录下来,这就导致他日质量非常大,如果你的主存服务器不在同一个机房,不在内网的话,那么他可能会消耗你大量的流量啊,这个也需要注意啊,那么接下来我们来给大家完整的演示一遍啊,这个非常重要, 大家一定有这个概念,知道他这个是怎么回事。好,那我们来登录服务器,给大家实际操作一遍,这里状态应该好了,我们刷新一下页面,我们来登录一下。 好,密码在这边啊。 ok, 那 这里有个小问题啊,这两台机器的名字都太长了,对吧?我们来把它名字改一下,改成 master and slave, 这样的话我们就能知道咱们用的是哪台机器。 好,我们退出再登录一下。 那我们首先需要把 macbook 给安装上啊,这里呢,我们使用这边自带的 macbook 啊,实际上它装的是开源的 mario d b, 反正是一样的,我们来复制下这个脚本,那这里要注意一下,你需要把密码改一下,这里你可以通过产生的方式,也可以在这里把密码改掉啊,我们直接复制脚本 贴一下,然后直行就可以了,这里也是的, 那这里有一点要注意啊,在我们的脚本里面做了一些初识的配置,那么在这呢,我们是把日制给开起来的啊,这个后面我们会讲到有几个关键的属性,我会跟大家讲到,那这里的,我们装的时候他这里就已经开启了, 那么正常情况下就是你装好 mac 后,就要把这个日期开起来啊,因为你后面再开启的话,你就必须要重启你的数据库,这可能会影响业务了。好,那我们等它安装完毕。 好,那现在两边都好了,我们先退出重服务器啊,因为我们接下来操作只要主服务器就可以了,然后我们要去看他的日期到底是怎么样的。我这边再登录一下主服务器,左边是演示,右边我们到时候看日期。 好,我们进入 mac, 然后创建一个数据库, 再创建一个表。 好,这里是 id, id 为主键。 ok, 表格创建完毕,然后我们先来看一下当前的日制格式。 好,可以看到它是漏,如果你的当前日期格式不是漏,那我们需要设置一下。 好,只要这样设置就可以了,我这边还是演示啊,比如说我们先把它设置成 segment, 我 们再去看一下,哎,它现在就 segment, 对 吧?那我们把它设置漏就可以。 然后还有另外一个变量,我们要来看一下它纯属的方式是不是 four, 还是后面的 minimal 来看一下。 好,它现在是 four, 没有问题。那么我们来插入一些数据啊,然后再做一些更新,我们来看一下它的日期是怎么样的 啊,打错了。好,然后插入第二条数据, 然后我们来更新其中一条数据。 右边这边我们进入到 my secret 的 目录, 这个就是它的日制文件,它是以 my secret 并开头的。啊,这里的设定呢,跟这里的配置是一样的,你可以把这里的名字改掉,那么它会以你设定的名字在后面增加零零零一,这里的后面数字是变化的。 好,然后我们要使用 macbooking log 这个命令查看, 后面要跟个 vv 啊,这是为了能让你直接阅读啊,因为默认情况下它是二进置的文件,你打开是看不懂的,所以你要加个 vv。 好, 然后我们来看一下日期。 首先是我们创建了数据库, 然后到这里是创建一张数据表,再往后走,这里就是插入数据,我们的第一条数据, 第二条数据,然后是第三条数据,那么注意看,最后面我们做了一个修改,对吧?更新的操作,那我们可以看到他是把原来一二三四啊,就是原来的纸啊, 这里的原来的纸它是全部记下来,对吧?然后再把我们更新的纸放上去,也就说负重模式啊,会把我们原来的纸和最新的纸它都会记录下来,你可以想象,比如说你一个表有几千万条数据,甚至上一条数据你做了一个 update, 哇,那么你这里的数据将是非常非常可怕的。好,那么我们来看一下另外一个模式, 这个模式是 minimal, 它只记录必要的列,也就是说只有你改的那一列它才会记下来。那我这边实际给大家演示一下,我们先来改一下变量,把模式设置为 minimal, 核对一下,它现在变成 minimal, 对 吧?我们再来更新一个数字,我们更新第二行, 再来看一下日制。好,你可以看到他这里只是记录了我们改的名字的那个字段,对吧?其他字段都是没有的, 不像上面这里他这几个字段都有。但是这样一来,你误操作的话,那你就不知道他原来是什么。不像上面这里你可以看到他原来的只是 a a, 我 这里是改成了 a a 键,对吧?但是他这里就没有了,所以这里要注意点。 然后还有一个 nobleble 模式啊,它和 for 类似,但是呢不会记录 blbleble 还有 text 列啊,这里可能会有一点混淆的地方,我给大家演示一下。 那么一般来说,我们的 blbleble 还有 text 列都是非常长的字段,就我们会塞很多东西,那么这个操作实际上就是为了节省日的空间,那么我们还是来先设定一下,设置成 nobleblebleble, ok, noob, noob, 然后我们来改第三条语句, 我们把它改成 c, c 啊,再看一下日制啊,我们先来看一下表, 我们的表一共有四列,那么第四列它是 text 模式,所以它不会记录第四列的数据,你可以看到它只有一二三,对吧?但是我们在前面 four 的 时候啊, 复制模式它会记录四列,对吧? ok, 那 这就是这三个模式的区别了。然后还有一个日期格式呢,就是混合,那顾名思义啊,就是买 c 库会根据你执行的日期啊,它会自动的去存啊,它是 从我们段的这个 c 口语句呢,还是去把我们行的数据啊,全部给保存下来,它会自动的去判断, 那么这三种具体采用哪个格式,需要根据你生产环境来,那如果你的数据比较重要,那肯定是走行比较合适,对吧?如果不是那么重要啊,你走断或者混合日子都可以,那么接下来我们来做基于日之点的组成同步的配置。 基于预制点的同步啊,是买车库最早的复制技术啊,也就是最成熟的,而且使用起来非常方便,也是使用的最多的一种复制。那么我们首先啊,需要在主库建立复制账号, 我们直接拷贝一下,那这里注意啊,艾特后面跟了我们的 ip, 对 吧?你也可以使用同步符,比如说那个百分号,那个同步符,也就说所有的地址都能访问,那一般来说,我们为了安全,我们会指定白名单的 ip, 也就是这里 ip, 这里的幺九零啊,就是我们重复的 ip, 就我们重库,在这里幺九零就是重库的 ip。 好, 那么我们现在左边是主库,右边是重库啊,我们在主库里面登录一下麦西裤,然后复制一下,那这里注意你自己的啊,密码什么,到时候改掉就可以了。 同步之后完成之后我们进行下一步。好,这里是配置文件,那么你需要主从同步呢?你必须要开启编辑 log 日记,这两个是最重要的参数,一个是开启编辑 log, 然后你要设定他的名字,另外一个呢就是他的 server id, 那 么不管你群里面有多少个机器啊,他的 server id 必须是不同的,这里一定要注意。注 库配置好之后呢,我们存库也要配置啊,但这两个字是一样的,然后它的 id 不 一样。那么注意啊,我们刚才在装买 c 购的时候,我们存库并没有改这个,是吧 id, 那 么我待会做同步任务的时候,它就会报错,那么我们会带大家看一下它的报错是怎么样的,然后我们怎么处理掉它, 然后进入第三步。如果你的数据库啊,并不是一开始就同步状态啊,比如说你是看到我这个视频之后,哎,想进行高可用的一些设定,然后开始组成同步。那这个时候呢,你需要初选画一下数据啊,也就说我们要把主库的数据备份一下 啊,然后给我们同步还原。那接着呢,通过我们备份的那个日期点再开始组重同步啊。那我们来实际操作一把,我们直接来复制, 直接执行 microsoft 这个命令就可以了。下面这一个它是第三方的,那如果你的业务量非常巨大,它可以减少锁,这个待会自己可以去查一下。我们直接用 microsoft 自带的命令,我们把所有的数据库都导出, 我们可以看到这里有个文件,对吧?然后我们把文件复制到我们的存库, 我们直接放到 note 目录下面, 好重复,这边就过来了。 好,我们来还原一下数据, 我们来看一下存库啊, 有我们创建的这个 vps, 这个数据库,对吧? 好,也有数据,现在我们两边的数据是一样的, 然后进入下一步,我们要从刚才备份的文件里面找到这两个值,一个是他日制文件,另外一个是他日制文件里面的位置。那么后面呢?我们会从他的这个日制文件和对应的位置开始同步啊,我们来看一下刚才的备份文件。 好,我们可以看到这是他对应的纸,对吧?那么我们这里呢,只要把对应的纸贴在这边就可以了,前面是我们主库的 ip 账号,然后密码,对吧? 那我们复制一下,然后改这两个纸,之后我们直接去执行一下, 那这里注意不要改错啊,我这边就改错了,对吧?三六二七,我把它写成了三二七, 没关系,我们任务没有启动,现在随便改啊。 ok, 改一下,然后我们来看一下他们的状态,在启动我们的同步操作, 这里我们清理一下,我们来看一下,这是我们主库的状态, 然后我们重库打这个命令,这里后面 g 的 话,它是会裂变成行去显示啊,那这里是我们配置的信息,然后注意两点,它的 i o 还有 circle ring, 这边是 no, 对 吧?这时候我们启动一下, 然后我们再去看这个日制, 那我们注意这里 sql 是 运行了,但是 l 还是 no, 然后往下走,这里有个错误,我们可以看到非常明显的提示啊, 它这里的 server id 并不是唯一的,对吧?所以我们需要修改一下 server id, 我 们进入到买 sql 的 配置文件的目录, 这有很多的配置文件啊,那注意一下,五十还有九九,这个 我们往前翻,翻到我们的这里的配置,我们在安装的时候用的就是这两个配置,对吧?这个是粗俗化的配置,然后这个是主要的,我们买奇酷的,它的配置其实都是可以在这里面改的啊。然后我们在这边调整一下, 我们把它的设备 id 改成二, 然后重启我们的 mac 服务,所以你一开始没有做好的话,你后面就会重启啊,好。然后呢我们再进入 mac, 我 们再来看一下状态, 那可以看到它这两边是运行了的,对吧?我们顺便看一下它的进程,这两边的进程 可以看到存库这里有一个,还有一个 cq 的 进程,而主库这边呢?我们这是我们存库的 ip 啊,它是有一个日期去等待发送,对吧?然后我们记住这个日期点啊, 就是到时候你实际去用的时候,你可以通过这些数据来观察同步的情况,同步到哪里了啊?然后我们来使用一下,我们插入个数据吧, 那现在应该四条数据,我们来看一下重复这边,那它这里就四条,我们来看一下它这里是三八九三,对吧?然后我们来看一下从这边消费的 三八九三。好,这里是一致的。好,那么我们的主从同步就完成了。 那么整个过程我们讲的非常细致啊,就讲的比较慢,因为一方有小伙伴之前没有了解过。 那么后续呢?我们会讲另外一个主从同步的方式啊,并且会把高可用也放进来,就是我们到时候碰到故障之后啊,怎么去切我们的主从。 ok, 本期视频就到这边,那大家有兴趣的话也可以加群一起讨论。好,我们下期视频再见。