Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit c37f9d4

Browse files
committed
更新翻译稿
1 parent 6c21a16 commit c37f9d4

File tree

12 files changed

+222
-343
lines changed

12 files changed

+222
-343
lines changed

‎第1部分-入门/Chapter4.md‎

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -42,16 +42,12 @@
4242
MySQL [localhost ssl] SQL> \source world.sql
4343
```
4444

45-
46-
4745
如果使用旧版命令行客户端,请改为命令:
4846

4947
```
5048
mysql> SOURCE world.sql
5149
```
5250

53-
54-
5551
在这两种情况下,如果位于启动 MySQL Shell 或 mysql 的目录中,请将其添加到。
5652

5753
相关的数据库是包含与世界相同的,但它的组织方式不同。
@@ -78,8 +74,6 @@ MySQL 8 增加了对 MySQL 文档存储的支持,该存储存储和支持作
7874
MySQL [localhost+ ssl] SQL> \source world_x.sql
7975
```
8076

81-
82-
8377
如果路径不位于world_x,请将路径添加到文件。
8478

8579
和数据库非常简单,这使得它们易于使用;但是,有时您需要一些更复杂的东西可以提供。
@@ -147,8 +141,6 @@ MySQL [localhost+ ssl] SQL> \source sakila-schema.sql
147141
MySQL [localhost+ ssl] SQL> \source sakila-data.sql
148142
```
149143

150-
151-
152144
如果文件不位于当前目录中,请向它们添加路径。
153145

154146
到目前为止,这三个数据集的常见是它们包含的数据很少。虽然这在许多情况下是一个不错的功能,因为它更容易使用,在某些情况下,你需要更多的数据来探索查询计划的差异。员工是包含更多数据的选项。
@@ -189,8 +181,6 @@ PARTITION BY RANGE COLUMNS(from_date)
189181
PARTITION p19 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB)
190182
```
191183

192-
193-
194184
表显示了表的行数和请注意,加载数据时大小可能会略有不同)。大小假定您加载非分区数据;分区表稍大一些。
195185

196186
|| # 行 | 表空间大小 |
@@ -230,8 +220,6 @@ Figure 4-11. The views and routines in the employees database
230220
Query OK, 0 rows affected (0.02 sec)
231221
```
232222

233-
234-
235223
### 安装
236224

237225
您可以下载一个ZIP文件,包含安装,也可以在安装时克隆在编写本文时,只有一个名为 master 的。如果您已经下载了 ZIP 文件,它将解压缩到名为"test_db。
@@ -244,8 +232,6 @@ Query OK, 0 rows affected (0.02 sec)
244232
mysql> SOURCE employees.sql
245233
```
246234

247-
248-
249235
导入需要一点时间,通过显示它所用的时间完成:
250236

251237
```
@@ -257,16 +243,12 @@ mysql> SOURCE employees.sql
257243
1 row in set (0.44 sec)
258244
```
259245

260-
261-
262246
或者,您可以通过源对象.sql 文件来加载一些额外的视图程:
263247

264248
```
265249
mysql> SOURCE objects.sql
266250
```
267251

268-
269-
270252
除了此处讨论的之外,还有其他一些选择来获取要使用的示例数据。
271253

272254
## 其他数据库

‎第2部分-信息来源/Chapter5.md‎

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,6 @@ mysql> SELECT THREAD_ID AS TID,
102102
49 rows in set (0.0615 sec)
103103
```
104104

105-
106-
107105
TID 列是每个线程的 THREAD_ID,THREAD_NAME 列包括线程名称的最后两个组件(第一个组件是所有线程的线程),B 列具有背景线程的星号,PID 列具有前台线程的进程列表 ID。
108106

109107
------
@@ -173,8 +171,6 @@ PROCESSLIST_COMMAND: Query
173171
1 row in set (0.0005 sec)
174172
```
175173

176-
177-
178174
有几个列在性能调优的上下文中提供有用的信息,将在后几章中使用。值得注意的是,这里是他们的名字以PROCESSLIST_。这些等效于 SHOW ProcessLIST 返回的信息,但查询线程表对连接的影响较小。"仪器"和"历史记录"列指定是否为线程收集检测数据,以及是否为线程保留事件历史记录。您可以更新这两列以更改线程的行为,也可以根据 setup_threadstable 中的线程类型或使用 setup_actors 表定义线程的默认行为。这就引出了一个问题,什么是工具和事件。接下来的三节将讨论这一点,以及如何消耗这些仪器。
179175

180176
## 仪器
@@ -378,7 +374,7 @@ SELECT FORMAT_PICO_TIME(111577500000);
378374
1 row in set (0.0004 sec)
379375
```
380376

381-
该函数已添加到 MySQL 8.0.16 中。在较早的版本中,您需要使用thesys.format_time() 函数。
377+
该函数已添加到 MySQL 8.0.16 中。在较早的版本中,您需要使用thesys.format_time( ) 函数。
382378

383379
## 演员和对象
384380

@@ -419,7 +415,7 @@ Digest: 26b06a0b2f651e04e61751c55f84d0d721d31041ea57cef5998bc475ab9ef773
419415

420416
------
421417

422-
**注意:在升级 MySQL 时,不能保证给定查询的摘要保持不变。这意味着您不应比较不同 MySQL 版本摘要。**
418+
**注意**:在升级 MySQL 时,不能保证给定查询的摘要保持不变。这意味着您不应比较不同 MySQL 版本摘要。
423419

424420
------
425421

@@ -454,8 +450,6 @@ Query OK, 1 row affected (0.2674 sec)
454450
Rows matched: 1 Changed: 1 Warnings: 0
455451
```
456452

457-
458-
459453
重新启动MySQL时,此配置不是永久性的,因此,如果在没有配置选项的情况下要更改这些表的配置,请将所需的SQL语句添加到初始化文件中,并通过init_file选项执行它。
460454

461455
以上是对性能模式的介绍,但是在本书的其余部分中,您将看到许多使用表的示例。

‎第4部分-模式注意事项和查询优化器/Chapter15.md‎

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@
2424

2525
简而言之,索引统计信息是有关索引中数据分布的近似信息。在 MySQL 中,存储引擎负责提供索引统计信息。因此,值得进一看看 InnoDB 如何处理索引统计信息。
2626

27-
## InnoDB and Index Statistics
27+
## InnoDB和索引统计
2828

2929
它是向服务器层和优化器提供索引统计信息的存储引擎。因此,了解 InnoDB 如何确定其统计信息非常重要。InnoDB 支持两种存储统计信息的方法:持久和瞬态。无论哪种方式,统计的确定方式都是一样的。本节首先讨论如何收集统计数据,然后介绍持久性和瞬态性统计信息的具体细节。
3030

31-
### How Statistics Are Collected
31+
### 如何收集统计信息
3232

3333
InnoDB 通过分析索引的随机叶页来计算其索引统计信息。例如,可能是对 20 个随机索引页进行了采样(也称为 20 个索引潜水),并检查这些页面包含的索引值。然后,InnoDB 会根据索引的总大小进行缩放。
3434

@@ -73,7 +73,7 @@ InnoDB 通过分析索引的随机叶页来计算其索引统计信息。例如
7373

7474
实际上,不可能使用精确的值。InnoDB 支持多版本控制,以便允许事务高并发,即使它们涉及写入。由于每个事务都有自己的数据视图,因此确切的统计信息将意味着每个事务都有自己的索引统计信息。这是不可行的, 那么 Innodb 如何处理呢?这是下一件事要考虑。
7575

76-
### Transaction Isolation Level
76+
### 事务隔离级别
7777

7878
一个相关的问题是,在收集统计信息时使用什么事务隔离级别。InnoDB 支持四个隔离级别:读取未提交、读取已提交、可重复读取(默认值)和可序列化。收集索引统计信息时,已选择使用未提交的读取。这是有道理的,因为这是一个很好的假设,大多数事务最终被提交,或者如果他们失败,他们重试。统计信息用于将来的查询,因此没有理由在收集统计信息时添加维护读取视图的开销
7979

@@ -88,7 +88,7 @@ InnoDB 通过分析索引的随机叶页来计算其索引统计信息。例如
8888

8989

9090

91-
### Configuring Statistics Type
91+
### 配置统计信息类型
9292

9393
如前所述,InnoDB 有两种方法可以存储索引统计信息。它可以使用持久存储,也可以使用瞬态存储。您可以使用"未执行"选项为innodb_stats_persistent方法。当设置为 1 或 ON(默认值)时,将使用持久统计信息;然后使用持久统计信息。如果将持久统计信息设置为 1 或 ON(默认值),则使用持久统计信息。将其设置为 0 或 OFF 会将该方法更改为瞬态统计信息。还可以使用"持久"表选项为每个STATS_方法。例如,要启用 world.city 表的持久统计信息,可以使用 ALTER 表,例如
9494

@@ -103,13 +103,13 @@ ALTER TABLE world.city
103103

104104

105105

106-
## Persistent Index Statistics
106+
## 持久索引统计
107107

108108
MySQL 5.6 中引入了持久索引统计信息,以使查询计划比较旧的瞬态索引统计信息更稳定。如名称建议,启用持久索引统计信息后,将保存统计信息,以便当 MySQL 重新启动时不会丢失统计信息。与单单坚持性更多的差异,尽管将变得清晰。
109109

110110
除了稳定的查询计划,持久统计允许详细配置要采样的页面数并具有良好的监视,您甚至可以直接查询保存统计信息的表。由于监视与瞬态统计信息有较大的重叠,因此将推迟到本章的稍后部分,因此本节将重点介绍持久性统计信息和存储统计信息的表的配置。
111111

112-
### Configuration
112+
### 配置
113113

114114
可以配置持久统计信息,在收集统计信息的成本和统计的准确性之间实现良好的平衡。与瞬态统计信息不同,可以配置全局级别和每个表的行为。未设置特定于表的选项时,全局配置用作默认值。
115115

@@ -173,7 +173,7 @@ Records: 0 Duplicates: 0 Warnings: 0
173173

174174
有机会调整索引统计信息,因此能够查看收集的数据非常重要。在讨论瞬态统计之后,"监视"部分将讨论一些一般方法。但是,使持久性统计信息持久性的是,它们存储在表中,并且这些统计信息也提供了有价值的信息。
175175

176-
### Index Statistics Tables
176+
### 索引统计表
177177

178178
InnoDB 在 mysql 架构中使用两个表来存储与持久统计信息相关的数据。这些不仅可用于调查统计数据和采样数据,而且有助于了解有关一般索引的更多信息。
179179

@@ -303,8 +303,6 @@ sum_of_other_index_sizes: 8
303303

304304
------
305305

306-
307-
308306
### Information Schema STATISTICS View
309307

310308
获取有关索引统计信息的详细信息的主表是信息架构中的 STATISTICS 视图。该视图不仅包含索引统计信息本身,还包含有关索引的元信息。实际上,您可以基于 STATISTICS 视图中的数据重新创建索引定义。这是上一章中用于查找表上的索引名称的视图。
@@ -364,7 +362,7 @@ SEQ_IN_INDEX: 2
364362

365363
统计视图中的一些信息也可通过 SHOW INDEX 语句获得。
366364

367-
### The SHOW INDEX Statement
365+
### SHOW INDEX语句
368366

369367
SHOW INDEX 语句是获取有关 MySQL 中索引信息的原始方式。今天,它从与用户相同的源获取information_schema。统计,所以您可以使用,因为它最适合你。统计视图的一个主要优点是,您可以选择您想要的信息以及如何订购这些信息;使用 SHOW INDEX 语句时,您始终获取单个表的索引,并订购了基于可用字段进行筛选的选项。
370368

‎第4部分-模式注意事项和查询优化器/Chapter16.md‎

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,6 @@ MySQL 支持多达 1024 个存储桶。存储桶的量桶越多,每个存储
8989

9090
在图中,前面的暗列是每个存储桶中值的频率。频率是具有该值的行的百分比。在后台(颜色更亮的列)是累积频率,其值与存储桶 0 的计数列相同,然后逐渐增加,直到存储桶 7 达到 100。什么是累积频率?这是你应该理解的直方图的第二个概念。
9191

92-
93-
9492
### 累积频率
9593

9694
存储桶的累积频率是当前存储桶和上一个存储桶中的行的百分比。如果您正在查看存储桶编号 3,并且累积频率为 50%,则 50% 的行适合存储桶 0、1、2 和 3。这使得优化器很容易确定具有直方图的列的选择性。
@@ -157,7 +155,7 @@ MySQL 8 中有两种类型的直方图。创建或更新直方图时,根据值
157155

158156
为了演示单层和等高直方图,可以从 world.city 表创建 city_ 直方图表,其中包含基于八个国家/地区代码的城市子集。可以使用以下查询创建表:
159157

160-
```
158+
```sql
161159
use world
162160
CREATE TABLE city_histogram LIKE city;
163161
INSERT INTO city_histogram
@@ -206,8 +204,6 @@ Msg_text: Histogram statistics created for column 'length'.
206204
1 row in set (0.0057 sec)
207205
```
208206

209-
210-
211207
或者,您可以在 ANALYZE 和关键字将语句写入二进制日志。 这与更新索引统计信息时的工作方式相同。
212208

213209
当完成无错误的直方图创建将等于状态显示已创建直方图统计信息以及哪个列。如果发生错误,等于解释问题。 例如,如果尝试为不存在的列创建直方图,则错误将类似于此示例:
@@ -224,8 +220,6 @@ Msg_text: The column 'len' does not exist.
224220
1 row in set (0.0004 sec)
225221
```
226222

227-
228-
229223
还可以使用相同的语句更新同一表中多个列的直方图。例如,如果要更新表的长度评级列上的直方图,可以使用像清单。
230224

231225
```
@@ -246,8 +240,6 @@ Msg_text: Histogram statistics created for column 'rating'.
246240
2 rows in set (0.0119 sec)
247241
```
248242

249-
250-
251243
您应该选择多少桶?如果唯一值少于 1024 个,建议有足够的存储桶来创建单位直方图(即,至少与唯一值一样多的存储桶)。如果选择比值更多的存储桶,MySQL 将只使用存储每个值的频率所需的存储桶。从这个意义上说,存储桶的数量应视为要使用的最大存储桶数。
252244

253245
如果超过 1024 个不同的值,则需要足够的存储桶来获取数据的不同表示形式。25 到 100 个铲斗通常是一个很好的起点。对于 100 个存储桶,等高度直方图将平均具有每个存储桶中 1% 的行。行的分布越统一,需要的存储桶就更少,分布差异越大,需要的存储桶就越大。目标是在自己的存储桶中具有最常发生的值。例如,对于上一节中使用的表的子集,五个存储桶将中国 (CHN)、印度 (IND) 和美国放在自己的存储桶中。
@@ -283,8 +275,6 @@ Msg_text: Histogram statistics removed for column 'rating'.
283275
2 rows in set (0.0120 sec)
284276
```
285277

286-
287-
288278
ANALYZE TABLE 语句类似于创建统计信息。您还可以在 ANALYZE 和,以避免将语句写入二进制日志。
289279

290280
一旦您拥有直方图,如何检查统计数据及其元数据?您可以使用信息架构,如下文讨论。
@@ -370,8 +360,6 @@ Number_of_Buckets_Specified: 256
370360
1 row in set (0.0006 sec)
371361
```
372362

373-
374-
375363
该查询提供直方图的高级别视图。运算符从 JSON 文档中提取一个运算符另外取消引用提取的值,这些值在提取字符串时非常有用。例如,从示例输出中,您可以看到表中长度列直方图具有 140 个存储桶,但请求了 256 个存储桶。您还可以看到它是一个单位直这并不奇怪,因为并非所有请求的存储桶都使用。
376364

377365
### 列出单个直方图的所有信息
@@ -384,8 +372,6 @@ ANALYZE TABLE world.city_histogram
384372
WITH 4 BUCKETS;
385373
```
386374

387-
388-
389375
清单查询此直方图的数据。这与图讨论等直方图时使用的直方图相同。
390376

391377
```
@@ -434,8 +420,6 @@ Histogram: {
434420
1 row in set (0.0006 sec)
435421
```
436422

437-
438-
439423
此查询有几个有趣的事情。函数用于便于读取直方图信息。如果没有函数,整个文档将作为一行返回。
440424

441425
另请注意,每个字符串的下上限作为 base64 编码字符串返回。这是为了确保字符串和二进制列中的任何值都可以由直方图处理。其他数据类型直接存储其值。
@@ -450,8 +434,6 @@ ANALYZE TABLE world.city_histogram
450434
WITH 8 BUCKETS;
451435
```
452436

453-
454-
455437
这与图中讨论单例直方图时用于示例的直方图相同。清单显示了对单例直方图进行此项工作的示例。
456438

457439
```
@@ -519,8 +501,6 @@ Cumulative_Frequency: 100
519501
8 rows in set (0.0008 sec)
520502
```
521503

522-
523-
524504
查询将 JSON 上的视图,将 JSON 文档转换为 SQL 表。函数采用两个参数,其中第一个参数是 JSON 文档,第二个参数是值的路径,以及生成的表的列定义。列定义包括为每个存储桶创建的三列:
525505

526506
- 此列具有子句,它使它成为一个基于 1 的自动增量计数器,因此可以通过减去 1 来用于存储桶编号。
@@ -541,8 +521,6 @@ ANALYZE TABLE world.city_histogram
541521
WITH 4 BUCKETS;
542522
```
543523

544-
545-
546524
清单显示了在具有四个存储桶的代码存储桶信息的示例。
547525

548526
```
@@ -603,8 +581,6 @@ Cumulative_Frequency: 100
603581
4 rows in set (0.0011 sec)
604582
```
605583

606-
607-
608584
现在,您有一些工具来检查直方图数据,剩下的就是展示直方图如何更改查询计划的示例。
609585

610586
## 查询示例
@@ -625,8 +601,6 @@ SELECT film_id, title, length,
625601
GROUP BY film_id;
626602
```
627603

628-
629-
630604
标题和列来自和 如果GROUP_CONCAT猫王,使用"第三个函数。(此查询的替代方法是使用但这样,查询结果中包含了名称为 Elvis 的演员的全名。
631605

632606
在列的长度和first_name没有,因此优化器无法知道这些列的条件筛选得有多好。 默认情况下,它假定长度上的条件表中大约三分之一的行,并且 first_name 上10% 的行。(下一章包括这些默认筛选器值的来自。

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /