一,数据库中的 NULL 值。

NULL 代表不存在,数据库中的任何类型都可以是 NULL 值。如果 NULL 被建立了索引,它会作为最小值。

NULL 不能匹配任何结果,如果使用匹配的话,它返回的是 NULL。它与真的结果是 NULL,它与假的结果是 false,它或真的结果是真,它或假的结果是 NULL。

除非有经常出现缺失值和业务需要的地方,否则不要轻易设置 NULL 值。NULL 的一个优点是它占用的存储空间是比较小的。

 

二,存储过程和触发器。

存储过程是预编译的一组 SQL 语句,它可以提升 SQL 代码执行的效率,然后可以防止一些代码被直接执行,提高安全性。触发器是一类特别的存储过程,它不由程序员触发,自动触发。

 

三,查看执行计划,使用 explain。

执行计划可以告诉我们,这个语句是否是全局的全表查询,还是使用了索引,以及可以告诉我们它可能使用哪些索引。这样的话,我们就可以去有针对的去改写 SQL 语句去优化。

 

四,关于索引的知识。

对于那些高频查询的列,以及区分度很高的列,建立索引。对于覆盖索引,不要为最左边的列单独建立索引,这是冗余的。

索引不要建立过多,因为插入、删除这些操作会动态的维护索引,造成性能的损失。

 

五,UNION 和 UNION ALL 的区别。

UNION 和 UNION ALL 的区别是,UNION 它会对结果进行去重,UNION ALL 不会。它们的共同点是都会要求对应的列的类型匹配。

UNION 和 UNION ALL 的功能都是把两个表进行合并,比如说两个班级的人员的信息统计成学校的人员的信息。他们所以才会要求类型必须一致,但是不要求名称一致。比如说班级 A 中的名称叫 Name,班级 B 中的名称叫做代号。

 

六,IN 和 EXISTS。

IN 是对子查询的结果和主查询做匹配,而 EXISTS 是对主查询的内容逐个的去进行操作。如果子查询的结果大的话用 EXISTS,如果结果小的话用 IN。现在默认情况下都会把 IN 转换成 EXISTS 做一种优化。

 

关于上硅谷的 Langchain 和李宏毅的 Agent 的知识。

智能体包括四部分,分别是记忆、规划、工具和执行。

大模型和智能体的区别就是,大模型它本身没有执行能力。比如说,它不能去制作视频,并把它发布在抖音上面。

Langchain 的 tool 也就是工具,本质上是一个函数调用,它有一定的输入和输出。

Langchain 的 Content 不一定所有的模型供应商都接受图片的输入,但是可以使用 Content Blocks 来统一的作为一种 API 的调用方式。

 

其他内容

从《真本事》这本书中学到的关于我现在做事情的一个心态,就是遇到问题的时候,不要否定自己,不要焦虑,而是问自己,我能从这件事情中学到什么?一次面试失败,本身你焦虑不焦虑都可能没有意义,但是你学到的东西是真的能改变你下一次以及你当下应该怎么做的。

 

然后对于八股,现在的面试,数据库还是会考察的,还有操作系统的知识,比如说进程、线程这些内容。

 

关于 Agent 相关的内容的话,是比如说工具调用这些会具体问到,因为这些是比较近的。

 

今天做笔试的时候,遇到第一种遇到的情况,就是发现它不能够显示输出,只能够给你显示你的结果对不对,这是第一次遇到。遇到这种情况只能通过不同的去改变值,或者如果真的想看结果的话,可以把自己要调试的内容 return 过去,但是如果类型不一致的话,就无能为力了。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐