这是我参与「第三届青训营-后端场」笔记创作活动的第4篇笔记
抖音项目中使用的数据库是MySQL,是最经典的数据库。我在其他项目中用过MongoDB,这是一种NoSQL Database,这里我想对比一下SQL和NoSQL,希望可以给大家帮助
经典的SQL数据库
经典的NoSQL数据库
选用SQL数据库的理由
1.需要确保 ACID 合规性。ACID合规性通过准确规定事务与数据库的交互方式来减少异常并保护数据库的完整性。通常,NoSQL数据库为了可扩展性和处理速度牺牲了 ACID 合规性。这使得安全性能会降低,在银行业或者是金融业界常常是不可以接受的,这时候往往会选择经典的SQL数据库。
2.数据是结构化且不变的。业务没有经历需要更多服务器的大规模增长,并且处理一致的数据,那么可能没有理由使用旨在支持各种数据类型和高流量的系统。
选用NoSQL数据库的理由
1.存储大量几乎没有结构的数据。NoSQL数据库对可以存储在一起的数据类型没有限制,并允许根据需要添加新类型。使用基于文档的数据库,可以将数据存储同在一个地方,而并不需预先定义这些数据的Type。
2.充分利用云计算和存储。基于云的存储是一种出色的节省成本的解决方案,但需要将数据轻松地分布在多个服务器上以进行扩展。在云端使用商品硬件可以省去额外软件的麻烦,同时NoSQL 数据库旨在开箱即用地跨多个数据中心进行扩展,而不会带来很多麻烦。这也是很多项目选用NoSQL的最主要原因