|
10 | 10 |
|
11 | 11 | [TOC]
|
12 | 12 |
|
13 |
| - 现今很多应用程序都是**数据密集型(data-intensive)**的,而非**计算密集型(compute-intensive)**的。因此CPU很少成为这类应用的瓶颈,更大的问题通常来自数据量、数据复杂性、以及数据的变更速度。 |
| 13 | +现今很多应用程序都是 **数据密集型(data-intensive)** 的,而非 **计算密集型(compute-intensive)** 的。因此CPU很少成为这类应用的瓶颈,更大的问题通常来自数据量、数据复杂性、以及数据的变更速度。 |
14 | 14 |
|
15 | 15 | 数据密集型应用通常由标准组件构建而成,标准组件提供了很多通用的功能;例如,许多应用程序都需要:
|
16 | 16 |
|
17 |
| -***数据库(database)*** |
| 17 | + - 存储数据,以便自己或其他应用程序之后能再次找到 (***(数据库(database))***) |
| 18 | + - 记住开销昂贵操作的结果,加快读取速度(***缓存(cache)***) |
| 19 | + - 允许用户按关键字搜索数据,或以各种方式对数据进行过滤(***搜索索引(search indexes)***) |
| 20 | + - 向其他进程发送消息,进行异步处理(***流处理(stream processing)***) |
| 21 | + - 定期处理累积的大批量数据(***批处理(batch processing)***) |
18 | 22 |
|
19 |
| - 存储数据,以便自己或其他应用程序之后能再次找到 |
20 |
| - |
21 |
| -***缓存(cache)*** |
22 |
| - |
23 |
| - 记住开销昂贵操作的结果,加快读取速度 |
24 |
| - |
25 |
| -***搜索索引(search indexes)*** |
26 |
| - |
27 |
| - 允许用户按关键字搜索数据,或以各种方式对数据进行过滤 |
28 |
| - |
29 |
| -***流处理(stream processing)*** |
30 |
| - |
31 |
| - 向其他进程发送消息,进行异步处理 |
32 |
| - |
33 |
| -***批处理(batch processing)*** |
34 |
| - |
35 |
| - 定期处理累积的大批量数据 |
36 |
| - |
37 |
| - |
38 |
| - |
39 |
| - 如果这些功能听上去平淡无奇,那是因为这些**数据系统(data system)**是非常成功的抽象:我们一直不假思索地使用它们并习以为常。绝大多数工程师不会幻想从零开始编写存储引擎,因为在开发应用时,数据库已经是足够完美的工具了。 |
| 23 | +如果这些功能听上去平淡无奇,那是因为这些 **数据系统(data system)** 是非常成功的抽象:我们一直不假思索地使用它们并习以为常。绝大多数工程师不会幻想从零开始编写存储引擎,因为在开发应用时,数据库已经是足够完美的工具了。 |
40 | 24 |
|
41 | 25 | 但现实没有这么简单。不同的应用有着不同的需求,因而数据库系统也是百花齐放,有着各式各样的特性。实现缓存有很多种手段,创建搜索索引也有好几种方法,诸如此类。因此在开发应用前,我们依然有必要先弄清楚最适合手头工作的工具和方法。而且当单个工具解决不了你的问题时,组合使用这些工具可能还是有些难度的。
|
42 | 26 |
|
|
193 | 177 | 1. 发布推文时,只需将新推文插入全局推文集合即可。当一个用户请求自己的主页时间线时,首先查找他关注的所有人,查询这些被关注用户发布的推文并按时间顺序合并。在如[图1-2](img/fig1-2.png)所示的关系型数据库中,可以编写这样的查询:
|
194 | 178 |
|
195 | 179 | ```sql
|
196 |
| - SELECT tweets.*, users.* |
197 |
| - FROM tweets |
198 |
| - JOIN users ON tweets.sender_id = users.id |
199 |
| - JOIN follows ON follows.followee_id = users.id |
| 180 | + SELECT tweets.*, users.* |
| 181 | + FROM tweets |
| 182 | + JOIN users ON tweets.sender_id = users.id |
| 183 | + JOIN follows ON follows.followee_id = users.id |
200 | 184 | WHERE follows.follower_id = current_user
|
201 | 185 | ```
|
202 | 186 | 
|
|
476 | 460 |
|
477 | 461 | | 上一章 | 目录 | 下一章 |
|
478 | 462 | | ----------------------------------- | ------------------------------- | ------------------------------------ |
|
479 |
| -| [第一部分:数据系统基础](part-i.md) | [设计数据密集型应用](README.md) | [第二章:数据模型与查询语言](ch2.md) | |
| 463 | +| [第一部分:数据系统基础](part-i.md) | [设计数据密集型应用](README.md) | [第二章:数据模型与查询语言](ch2.md) | |
0 commit comments