什么是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
相关推荐
陈天伟教授7 小时前
人工智能训练师认证教程(2)Python os入门教程
前端·数据库·python
Elastic 中国社区官方博客8 小时前
Elasticsearch:在分析过程中对数字进行标准化
大数据·数据库·elasticsearch·搜索引擎·全文检索
聪明努力的积极向上8 小时前
【MYSQL】字符串拼接和参数化sql语句区别
数据库·sql·mysql
代码or搬砖8 小时前
RBAC(权限认证)小例子
java·数据库·spring boot
神仙别闹8 小时前
基于QT(C++)实现学本科教务系统(URP系统)
数据库·c++·qt
2301_768350238 小时前
MySQL为什么选择InnoDB作为存储引擎
java·数据库·mysql
上海蓝色星球8 小时前
迈向智慧电网新纪元:上海蓝色星球数字孪生变电主子站系统
运维·数据库
是大芒果8 小时前
数据库表设计
数据库
哥哥还在IT中9 小时前
MySQL order by 如何优化
数据库·mysql
积跬步,慕至千里9 小时前
postgre数据库大批量快速导出方法总结
数据库·postgres