在数据库中存储的是什么

数据库是存储和管理数据的有组织的集合。
它使用关系模型来描述数据之间的关系,例如电子商务系统中用户、订单和产品的关联,保证数据标准化和查询效率。
在物理层面,它是一个数据存储仓库;在技​​术层面上,它提供数据管理、安全、维护和使用优化。
随着需求的变化,传统关系型数据库和NoSQL数据库并存,以适应不同场景的需求。

在数据库中存储的是什么

说实话,说起数据库,刚入行的时候我真的很秃头。
但现在想来,其实也挺酷的:数据库是一个特别可靠的“数据管家”,可以帮你把各种杂乱的信息整理得干净整洁。

我们来谈谈文本数据。
我曾经在一家电商公司做活动页面,每次我都要和产品经理争论:“如何保存产品描述?我应该将其保存在产品表中还是创建一个单独的描述表?”后来发现大厂已经有解决方案了:把很长的文本分开,用Varchar(5 000)来保存。
有趣的是,MySQL 推荐的最大字符串长度是 6 5 k,但在实际使用中,对于大多数情况来说 2 000 个字符就足够了。

就数值数据而言,我见过的最令人惊奇的是银行系统。
他们的交易流存储在 Decimal(1 9 ,4 ) 中。
说白了就是可以精确到小数点后4 位,避免计算时出现舍入误差。
记得有一次测试环境不小心把精度改成了Decimal(1 0,2 )。
结果客户端加载了几千万订单,系统立刻就崩溃了——这个教训太深刻了。

我遇到了图像数据的陷阱。
有一次,当我保存产品图像时,技术说“只需将它们保存为文件流”,但三个月后系统崩溃了,所有数据都丢失了。
后来才知道必须要用BLOB类型,但更重要的是,没有考虑到图片索引:当时运维每天都在喊“查询太慢”。
我自己没有运行过,但我记得的数据表明,当时的平均查询时间在3 秒左右,优化后减少到0.1 秒。

日期和时间问题尤其令人烦恼。
我见过的最可耻的事情就是跨国公司。
有的人用DD/MM/YYYY,有的人用MM/DD/YYYY,数据库直接炸了。
后来统一为ISO 8 6 01 标准,格式统一为YYYY-MM-DDTHH:MM:SS。
说实话,当时实施起来非常困难,但确实省去了很多麻烦。

对于关系数据我不得不对MySQL和Oracle点赞。
记得有一次,公司在做一个订货系统时,需要查询“某城市排名前1 0的供应商”。
SQL有2 00多行,但执行只用了1 秒。
如果它使用文件系统,我想我的手会很局促,无法打字。
然而,关系型数据库也存在问题:例如,有一次创建报表时需要连接 1 0 个表。
结果DBA直接发邮件说:“哥们,我再开一个Join,我就跪了。

我也玩过MongoDB作为文档数据库。
有一家社交网络公司直接将用户更新保存为 JSON。
保存了多少个 JOIN?但代价是,后来在运行推荐算法时,我发现我必须运行 MapReduce 两天 - 这是另一项技能。

说到底,数据库选择就像相亲一样。
关系类型适合那些有组织性的人,文献类型适合那些需要灵活性的人。
我的公司现在使用 PostgreSQL,我认为它非常实用:它可以做所有事情,仅此而已别开太大的玩笑。

数据库中常用的四种数据类型