mysql里null的意思是什么

说白了,MySQL中的NULL就相当于“我不知道这个值是什么”,但是这个“我不知道”背后却隐藏着很多陷阱。

先说最重要的一点:NULL不仅占用内存空间(1 字节标记位),而且是唯一的——就像NULL+1 或NULL一样,因为算法不明白加1 意味着什么。
这与空字符串''完全不同。
'' 明确表示“这里没有内容”,而 NULL 表示“该值正在等待”。
去年我们做的电商项目,因为盘点库存的时候混淆了COUNT()和COUNT(库存),差点被老板骂。
结果显示库存明显在3 000左右,但报告显示少了一半。

另一点是 NULL 对于查询的毒性。
例如,WHERE Age=NULL 永远不会找到一个人,因为 NULL 不对应于一个值,而是代表“缺少年龄信息”。
我们之前有一个项目,开发人员错误地使用了 IFNULL 函数,将所有 NULL 值硬转换为 0。
结果,在计算会员折扣时,一切都崩溃了。
还有另一个关键细节:TIMESTAMP 类型的 NULL 会自动填充当前时间,但空字符串仅存储为 0000-00-00 00:00:00。
很多人不重视它。

一开始以为NULL和FALSE差不多,后来发现FALSE明显是“假”,NULL是“不判断”,影响了条件判断的结果。
例如,检查订单状态 IF NULL 会导致许多未处理的订单被计为已完成。

简而言之:尽可能不要使用 NULL。
设计索引时,将列设置为 NOT NULL 加一个默认值,如:E.g.空字符串或0,查询和优化变得更加容易。
最好在表设计规范中设置默认值NOT NULL,除非公司确实需要区分“不知道”和“没有内容”。
在这种情况下,请记住添加零评论框来解释原因 - 老实说,这非常令人困惑。

Easysearch:语义搜索、知识图和向量数据库概述

语义研究是为了理解你的话的含义。
例如,如果您搜索“附近的餐馆”,它会知道它们在哪里,并直接为您提供附近的餐馆。
比旧的搜索引擎更严格。

这个东西已经存在很长时间了。
1 9 8 4 年,有一个名为 Psych 的项目,想要教计算机理解常识。
后来,在 2 000 年左右,Ask.com 开始使用自然语言搜索。
现在大家都在用它。
例如,谷歌在2 01 2 年发布了知识图谱,亚马逊利用这项技术作为Alexa的大脑。

知识图谱是一个巨大的连接网络。
例如,了解谁在哪家公司做什么。
语义搜索依靠网络来理解您的意思。
反过来,搜索结果有助于改善网络。

Google 图片中存在大量数据。
搜索“apple”可以告诉你apple是一家公司还是一种水果。
这就是所谓的理解你。

矢量数据库也可以提供帮助。
将对象转换为算术向量。
例如,将“伦敦”和“英国首都”的向量放在一起。
如果您搜索“伦敦”,它会识别出您正在英国输入。

这项技术现在很流行。
矢量数据库+知识图谱+语义搜索=更好地理解您的搜索。

轻松搜索是一个轻量级选项。
它比 Elasticsearch 更简单,但具有足够的功能供企业使用。
非常适合不想让事情变得太复杂的团体。

称一下体重。