...大约 22 分钟
- 笔记52
- Java211
- 编程14
- 设计79
- DevOps8
- 算法17
- 数据库115
- 网络19
- 操作系统15
- 分布式77
- 大数据32
- 软件工程3
- 工作8
- 面试13
- 人工智能1
- JavaEE15
- 软件20
- 工具35
- 框架71
- 中间件9
- JavaCore65
- 编程范式4
- 编程语言3
- Python6
- UML4
- 架构23
- 解决方案8
- 设计模式27
- 重构7
- 监控2
- 数据库综合4
- 数据库中间件3
- 关系型数据库21
- 文档数据库12
- KV数据库21
- 列式数据库15
- 搜索引擎数据库22
- 网络分层6
- 网络协议6
- 网络技术4
- Linux11
- 分布式协同17
- 分布式存储8
- 分布式理论15
- 分布式调度7
- 分布式通信29
- flink9
- hadoop5
- hive9
- 综合14
- 器1
- 术4
- 法1
- JavaWeb6
- 服务器8
- 构建9
- IDE4
- 监控诊断6
- IO10
- JavaBean2
- 模板引擎4
- 测试5
- 其他8
- ORM4
- Spring61
- 安全9
- 缓存5
- 流量控制2
- JVM9
- 基础特性18
- 容器7
- 并发11
- 高级特性7
- 微服务5
- Git3
- MySQL15
- MongoDB11
- Redis19
- HBase13
- Elastic5
- Elasticsearch16
- ZooKeeper7
- MQ17
- RPC5
- Tomcat6
- Maven7
- SpringIO4
- SpringWeb8
- Spring其他4
- Spring安全1
- Spring数据10
- Spring核心24
- Spring综合4
- Spring集成4
- Kafka10
- RocketMQ4
...小于 1 分钟
数据结构与数据库索引
关键词:链表、数组、散列表、红黑树、B+ 树、LSM 树、跳表
引言
数据库是“按照 数据结构 来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
——上面这句定义对数据库的定义来自百度百科。通过这个定义,我们也能明显看出数据结构是实现数据库的基石。
从本质来看,数据库只负责两件事:读数据、写数据;而数据结构研究的是如何合理组织数据,尽可能提升读、写数据的效率,这恰好是数据库的核心问题。因此,数据结构与数据库这两个领域有非常多的交集。其中,数据库索引最能体现二者的紧密关联。
...大约 20 分钟
Nosql 技术选型

Nosql 简介
传统的关系型数据库存在以下缺点:
- 大数据场景下 I/O 较高 - 因为数据是按行存储,即使只针对其中某一列进行运算,关系型数据库也会将整行数据从存储设备中读入内存,导致 I/O 较高。
- 存储的是行记录,无法存储数据结构。
- 表结构 schema 扩展不方便 - 如要需要修改表结构,需要执行执行 DDL(data definition language),语句修改,修改期间会导致锁表,部分服务不可用。
- 全文搜索功能较弱 - 关系型数据库下只能够进行子字符串的匹配查询,当表的数据逐渐变大的时候,
LIKE
查询的匹配会非常慢,即使在有索引的情况下。况且关系型数据库也不应该对文本字段进行索引。 - 存储和处理复杂关系型数据功能较弱 - 许多应用程序需要了解和导航高度连接数据之间的关系,才能启用社交应用程序、推荐引擎、欺诈检测、知识图谱、生命科学和 IT/网络等用例。然而传统的关系数据库并不善于处理数据点之间的关系。它们的表格数据模型和严格的模式使它们很难添加新的或不同种类的关联信息。
...大约 20 分钟