什么是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
相关推荐
能鈺CMS34 分钟前
能鈺CMS · 虚拟发货源码
java·大数据·数据库
泡沫·1 小时前
4.iSCSI 服务器
运维·服务器·数据库
胡八一1 小时前
解决PHP未检测到您服务器环境的sqlite3数据库扩展报错
服务器·数据库·php
Wang's Blog2 小时前
MongoDB小课堂: 游标操作与文档投影技术深度解析
数据库·mongodb
q***42052 小时前
使用Django Rest Framework构建API
数据库·django·sqlite
共享家95272 小时前
QT-界面优化(下)
开发语言·数据库·qt
maray2 小时前
Chroma 的设计哲学
数据库·人工智能
e***0963 小时前
SQL 中UPDATE 和 DELETE 语句的深入理解与应用
数据库·sql
程序员小白条4 小时前
你面试时吹过最大的牛是什么?
java·开发语言·数据库·阿里云·面试·职场和发展·毕设
老华带你飞4 小时前
社区养老保障|智慧养老|基于springboot+小程序社区养老保障系统设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·小程序·毕设·社区养老保障