什么是NoSQL?

什么是NoSQL?

NoSQL = Not Only SQL(不仅仅是SQL)

基本概念

SQL vs NoSQL

特性 SQL NoSQL
数据结构 表格(行和列) 灵活(文档、键值、图等)
数据关系 强关系 弱关系或无关系
扩展性 垂直扩展 水平扩展
一致性 强一致性 最终一致性

生活中的例子

SQL = 图书馆

  • 每本书都有固定位置

  • 按分类整齐排列

  • 借书需要登记表格

  • 结构严格,不能随意放书

NoSQL = 家里的杂物箱

  • 东西随便放

  • 不需要固定格式

  • 找东西靠记忆

  • 灵活,想放什么放什么

主要类型

1. 键值存储(Redis)

复制代码
// 像字典一样
name -> "张三"
age -> 25

2. 文档存储(MongoDB)

java 复制代码
// 像JSON文件
{
  "name": "张三",
  "age": 25,
  "hobbies": ["读书", "游泳"]
}

3. 列族存储(HBase)

java 复制代码
// 像Excel表格,但列可以动态增加
姓名 | 年龄 | 爱好1 | 爱好2
张三 | 25  | 读书  | 游泳

4. 图数据库(Neo4j)

java 复制代码
// 像社交网络
张三 -> 认识 -> 李四
李四 -> 认识 -> 王五

使用场景

SQL适合:

  • 银行系统(需要强一致性)
  • 电商订单(需要事务)
  • 财务报表(需要精确计算)

NoSQL适合:

  • 社交网络(用户关系复杂)
  • 内容管理(文章、评论)
  • 实时数据(日志、监控)

总结

方面 SQL NoSQL
学习难度 中等 简单
开发速度
数据安全 中等
扩展成本

选择原则:

  • 需要强一致性 → SQL
  • 需要快速开发 → NoSQL
  • 数据关系复杂 → SQL
  • 数据量大 → NoSQL
相关推荐
JQLvopkk5 小时前
C# 轻量级工业温湿度监控系统(含数据库与源码)
开发语言·数据库·c#
devmoon6 小时前
在 Polkadot Runtime 中添加多个 Pallet 实例实战指南
java·开发语言·数据库·web3·区块链·波卡
认真的薛薛6 小时前
数据库-sql语句
数据库·sql·oracle
爱学英语的程序员6 小时前
面试官:你了解过哪些数据库?
java·数据库·spring boot·sql·mysql·mybatis
·云扬·7 小时前
MySQL Redo Log落盘机制深度解析
数据库·mysql
用户982863025688 小时前
pg内核实现细节
数据库
飞升不如收破烂~8 小时前
Redis 分布式锁+接口幂等性使用+当下流行的限流方案「落地实操」+用户连续点击两下按钮的解决方案自用总结
数据库·redis·分布式
workflower8 小时前
业务需求-假设场景
java·数据库·测试用例·集成测试·需求分析·模块测试·软件需求
亓才孓8 小时前
[JDBC]基于三层架构和MVC架构的JDBCTools
数据库
IT邦德8 小时前
RPM包快速安装Oracle26ai
数据库·oracle