Skip to content

Commit

Permalink
update sql docs
Browse files Browse the repository at this point in the history
  • Loading branch information
fengzhao committed Feb 6, 2025
1 parent d8755f8 commit ca298c0
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 6 deletions.
13 changes: 9 additions & 4 deletions docs/foundmental/2.MySQL索引.md
Original file line number Diff line number Diff line change
Expand Up @@ -1197,15 +1197,20 @@ CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
- 如果某数据列含有很多不同的年龄,索引会很快地分辨数据行。
- 如果某个数据列用于记录性别(只有”M”和”F”两种值),那么索引的用处就不大
- 如果某个数据列用于记录性别(只有”M”和”F”两种值),那么B+TREE索引的用处就不大
- 如果值出现的几率几乎相等,那么无论搜索哪个值都可能得到一半的数据行。
在这些情况下,最好根本不要使用索引,因为查询优化器发现某个值出现在表的数据行中的百分比很高的时候。
在这些情况下,最好根本不要使用B+TREE索引,因为查询优化器发现某个值出现在表的数据行中的百分比很高的时候。它一般会忽略索引,进行全表扫描。惯用的百分比界线是”30%”。
### 位图索引
它将每个独特的值映射到一个位图上,其中每一位代表一行数据是否包含该值。当多个位图需要进行交集、并集等操作时,只需对位图进行逻辑运算,从而实现高效的集合运算查询。
`BitMap` 的基本原理就是用一个 bit 位来存放某种状态,适用于大规模数据,但数据状态又不是很多的情况。通常是用来判断某个数据存不存在的。
它一般会忽略索引,进行全表扫描。惯用的百分比界线是”30%”。
使用 show index from table 语句,
#### **索引维护的代价**
Expand Down
4 changes: 2 additions & 2 deletions docs/olap/01.OLAP概述.md
Original file line number Diff line number Diff line change
Expand Up @@ -675,9 +675,9 @@ Mesa 项目是 `Google` 大概在2014年发表的论文,实现全球复制以

广告业务的特点是其数据量特别大,每次广告的展示、点击都会产生一条数据,存储这些原始数据不但会消耗大量的存储资源,也会给实时计算聚合结果(比如 "某个广告主截止目前已经消费了多少预算")带来很大困难。

在大数据分析场景中,核心业务是**经常需要对海量数据进行复杂的聚合操作(如求和、计数、平均值等)这些操作可能涉及多维过滤、分组和排序**
在大数据分析场景中,核心业务是 **经常需要对海量数据进行复杂的聚合操作(如求和、计数、平均值等)这些操作可能涉及多维过滤、分组和排序**

如果每次查询都需要对原始数据来重新**实时计算,可能会导致查询延迟过高**。尤其是当数据规模达到 PB 级时。
如果每次查询都需要对原始数据来重新 **实时计算,可能会导致查询延迟过高**。尤其是当数据规模达到 PB 级时。


Mesa 为了解决上面提到的两个问题,提出了一个预聚合的存储模型。Mesa 中的所有表都是预聚合表,以下图中的 Table A 为例:
Expand Down

0 comments on commit ca298c0

Please sign in to comment.