Skip to content

Commit 5bbd5f3

Browse files
authored
[Update] Spring Boot reversion and remove all of the copyable marks (#12570)
1 parent 8036583 commit 5bbd5f3

34 files changed

+76
-625
lines changed

develop/dev-guide-bookshop-schema-design.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@ Bookshop 是一个虚拟的在线书店应用,你可以在 Bookshop 当中便
1818

1919
如果你使用 [TiUP](/tiup/tiup-reference.md#tiup-命令概览) 部署 TiDB 集群或者你可以直接连接到你的 TiDB 服务器,你可以通过如下命令快速生成并导入 Bookshop 应用的示例数据:
2020

21-
{{< copyable "shell-regular" >}}
22-
2321
```shell
2422
tiup demo bookshop prepare
2523
```
@@ -40,8 +38,6 @@ tiup demo bookshop prepare
4038

4139
例如,你想要连接到 TiDB Cloud 上的数据库,你可以如下命令指定连接信息进行连接:
4240

43-
{{< copyable "shell-regular" >}}
44-
4541
```shell
4642
tiup demo bookshop prepare -U <username> -H <endpoint> -P 4000 -p <password>
4743
```

develop/dev-guide-connect-to-tidb.md

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@ TiDB 支持 [MySQL 客户端/服务器协议](https://dev.mysql.com/doc/internal
1414

1515
你可以使用 MySQL Client 作为 TiDB 的命令行工具。在 [MySQL Shell 官方文档](https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-install.html) 你可以找到不同操作系统的安装方式。在安装完后你可以使用如下命令行连接到 TiDB:
1616

17-
{{< copyable "shell-regular" >}}
18-
1917
```shell
2018
mysql --host <tidb_server_host> --port 4000 -u root -p --comments
2119
```
@@ -28,8 +26,6 @@ mysql --host <tidb_server_host> --port 4000 -u root -p --comments
2826

2927
例如:
3028

31-
{{< copyable "" >}}
32-
3329
```java
3430
MysqlDataSource mysqlDataSource = new MysqlDataSource();
3531
mysqlDataSource.setURL("jdbc:mysql://{host}:{port}/{database}?user={username}&password={password}");
@@ -53,8 +49,6 @@ mysqlDataSource.setURL("jdbc:mysql://{host}:{port}/{database}?user={username}&pa
5349

5450
例如,你的配置被写在 `hibernate.cfg.xml` 文件中,那么你的配置文件应该为:
5551

56-
{{< copyable "" >}}
57-
5852
```xml
5953
<?xml version='1.0' encoding='utf-8'?>
6054
<!DOCTYPE hibernate-configuration PUBLIC
@@ -71,8 +65,6 @@ mysqlDataSource.setURL("jdbc:mysql://{host}:{port}/{database}?user={username}&pa
7165

7266
随后,使用代码读取配置文件,从而获得 `SessionFactory` 对象:
7367

74-
{{< copyable "" >}}
75-
7668
```java
7769
SessionFactory sessionFactory = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
7870
```

develop/dev-guide-connection-parameters.md

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -171,8 +171,6 @@ JDBC 实现通常通过 JDBC URL 参数的形式来提供实现相关的配置
171171
172172
在进行 batch 写入处理时推荐配置 `rewriteBatchedStatements = true`,在已经使用 `addBatch` 或 `executeBatch` 后默认 JDBC 还是会一条条 SQL 发送,例如:
173173
174-
{{< copyable "" >}}
175-
176174
```java
177175
pstmt = prepare("INSERT INTO `t` (`a`) VALUES(?)");
178176
pstmt.setInt(1, 10);
@@ -185,8 +183,6 @@ pstmt.executeBatch();
185183

186184
虽然使用了 batch 但发送到 TiDB 语句还是单独的多条 insert:
187185

188-
{{< copyable "sql" >}}
189-
190186
```sql
191187
INSERT INTO `t` (`a`) VALUES(10);
192188
INSERT INTO `t` (`a`) VALUES(11);
@@ -195,16 +191,12 @@ INSERT INTO `t` (`a`) VALUES(12);
195191

196192
如果设置 `rewriteBatchedStatements = true`,发送到 TiDB 的 SQL 将是:
197193

198-
{{< copyable "sql" >}}
199-
200194
```sql
201195
INSERT INTO `t` (`a`) VALUES(10),(11),(12);
202196
```
203197

204198
需要注意的是,insert 语句的改写,只能将多个 values 后的值拼接成一整条 SQL, insert 语句如果有其他差异将无法被改写。例如:
205199

206-
{{< copyable "sql" >}}
207-
208200
```sql
209201
INSERT INTO `t` (`a`) VALUES (10) ON DUPLICATE KEY UPDATE `a` = 10;
210202
INSERT INTO `t` (`a`) VALUES (11) ON DUPLICATE KEY UPDATE `a` = 11;
@@ -213,8 +205,6 @@ INSERT INTO `t` (`a`) VALUES (12) ON DUPLICATE KEY UPDATE `a` = 12;
213205

214206
上述 insert 语句将无法被改写成一条语句。该例子中,如果将 SQL 改写成如下形式:
215207

216-
{{< copyable "sql" >}}
217-
218208
```sql
219209
INSERT INTO `t` (`a`) VALUES (10) ON DUPLICATE KEY UPDATE `a` = values(`a`);
220210
INSERT INTO `t` (`a`) VALUES (11) ON DUPLICATE KEY UPDATE `a` = values(`a`);
@@ -223,16 +213,12 @@ INSERT INTO `t` (`a`) VALUES (12) ON DUPLICATE KEY UPDATE `a` = values(`a`);
223213

224214
即可满足改写条件,最终被改写成:
225215

226-
{{< copyable "sql" >}}
227-
228216
```sql
229217
INSERT INTO `t` (`a`) VALUES (10), (11), (12) ON DUPLICATE KEY UPDATE `a` = values(`a`);
230218
```
231219

232220
批量更新时如果有 3 处或 3 处以上更新,则 SQL 语句会改写为 multiple-queries 的形式并发送,这样可以有效减少客户端到服务器的请求开销,但副作用是会产生较大的 SQL 语句,例如这样:
233221

234-
{{< copyable "sql" >}}
235-
236222
```sql
237223
UPDATE `t` SET `a` = 10 WHERE `id` = 1;
238224
UPDATE `t` SET `a` = 11 WHERE `id` = 2;

develop/dev-guide-create-database.md

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,12 @@ aliases: ['/zh/tidb/dev/create-database']
2727

2828
可使用 `CREATE DATABASE` 语句来创建数据库。
2929

30-
{{< copyable "sql" >}}
31-
3230
```sql
3331
CREATE DATABASE IF NOT EXISTS `bookshop`;
3432
```
3533

3634
此语句会创建一个名为 `bookshop` 的数据库(如果尚不存在)。请以 `root` 用户身份执行文件中的建库语句,运行以下命令:
3735

38-
{{< copyable "shell-regular" >}}
39-
4036
```shell
4137
mysql
4238
-u root \
@@ -48,8 +44,6 @@ mysql
4844

4945
要查看集群中的数据库,可在命令行执行一条 `SHOW DATABASES` 语句:
5046

51-
{{< copyable "shell-regular" >}}
52-
5347
```shell
5448
mysql
5549
-u root \

develop/dev-guide-create-secondary-indexes.md

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@ aliases: ['/zh/tidb/dev/create-secondary-indexes']
2525

2626
如果需要对已有表中添加二级索引,可使用 [CREATE INDEX](/sql-statements/sql-statement-create-index.md) 语句。在 TiDB 中,`CREATE INDEX` 为在线操作,不会阻塞表中的数据读写。二级索引创建一般如以下形式:
2727

28-
{{< copyable "sql" >}}
29-
3028
```sql
3129
CREATE INDEX {index_name} ON {table_name} ({column_names});
3230
```
@@ -41,8 +39,6 @@ CREATE INDEX {index_name} ON {table_name} ({column_names});
4139

4240
如果你希望在创建表的同时,同时创建二级索引,可在 [CREATE TABLE](/sql-statements/sql-statement-create-table.md) 的末尾使用包含 `KEY` 关键字的子句来创建二级索引:
4341

44-
{{< copyable "sql" >}}
45-
4642
```sql
4743
KEY `{index_name}` (`{column_names}`)
4844
```
@@ -69,8 +65,6 @@ KEY `{index_name}` (`{column_names}`)
6965
| price | decimal(15,2) | 价格 |
7066
| published_at | datetime | 出版时间 |
7167

72-
{{< copyable "sql" >}}
73-
7468
```sql
7569
CREATE TABLE `bookshop`.`books` (
7670
`id` bigint(20) AUTO_RANDOM NOT NULL,
@@ -85,16 +79,12 @@ CREATE TABLE `bookshop`.`books` (
8579

8680
因此,就需要对 **查询某个年份出版的所有书籍** 的 SQL 进行编写,以 2022 年为例,如下所示:
8781

88-
{{< copyable "sql" >}}
89-
9082
```sql
9183
SELECT * FROM `bookshop`.`books` WHERE `published_at` >= '2022-01-01 00:00:00' AND `published_at` < '2023-01-01 00:00:00';
9284
```
9385

9486
可以使用 [EXPLAIN](/sql-statements/sql-statement-explain.md) 进行 SQL 语句的执行计划检查:
9587

96-
{{< copyable "sql" >}}
97-
9888
```sql
9989
EXPLAIN SELECT * FROM `bookshop`.`books` WHERE `published_at` >= '2022-01-01 00:00:00' AND `published_at` < '2023-01-01 00:00:00';
10090
```
@@ -116,8 +106,6 @@ EXPLAIN SELECT * FROM `bookshop`.`books` WHERE `published_at` >= '2022-01-01 00:
116106

117107
`books` 表增加一个 `published_at` 列的索引:
118108

119-
{{< copyable "sql" >}}
120-
121109
```sql
122110
CREATE INDEX `idx_book_published_at` ON `bookshop`.`books` (`bookshop`.`books`.`published_at`);
123111
```
@@ -147,8 +135,6 @@ CREATE INDEX `idx_book_published_at` ON `bookshop`.`books` (`bookshop`.`books`.`
147135
148136
可以使用 [SHOW INDEXES](/sql-statements/sql-statement-show-indexes.md) 语句查询表中的索引:
149137

150-
{{< copyable "sql" >}}
151-
152138
```sql
153139
SHOW INDEXES FROM `bookshop`.`books`;
154140
```

develop/dev-guide-create-table.md

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,6 @@ aliases: ['/zh/tidb/dev/create-table']
3030

3131
`CREATE TABLE` 语句通常采用以下形式:
3232

33-
{{< copyable "sql" >}}
34-
3533
```sql
3634
CREATE TABLE {table_name} ( {elements} );
3735
```
@@ -45,8 +43,6 @@ CREATE TABLE {table_name} ( {elements} );
4543

4644
注意,此时因为一个列都没被添加,所以下方这条 SQL 暂时还不能被运行:
4745

48-
{{< copyable "sql" >}}
49-
5046
```sql
5147
CREATE TABLE `bookshop`.`users` (
5248
);
@@ -70,8 +66,6 @@ CREATE TABLE `bookshop`.`users` (
7066

7167
可以为 `users` 表添加一些列,如他们的唯一标识 `id`,余额 `balance` 及昵称 `nickname`
7268

73-
{{< copyable "sql" >}}
74-
7569
```sql
7670
CREATE TABLE `bookshop`.`users` (
7771
`id` bigint,
@@ -90,8 +84,6 @@ TiDB 支持许多其他的列数据类型,包含[整数](/data-type-numeric.md
9084

9185
稍微提升一下复杂度,例如选择定义一张 `books` 表,这张表将是 `bookshop` 数据的核心。它包含书的唯一标识、名称、书籍类型(如:杂志、动漫、教辅等)、库存、价格、出版时间等字段。
9286

93-
{{< copyable "sql" >}}
94-
9587
```sql
9688
CREATE TABLE `bookshop`.`books` (
9789
`id` bigint NOT NULL,
@@ -129,8 +121,6 @@ CREATE TABLE `bookshop`.`books` (
129121

130122
需遵循[选择主键时应遵守的规则](#选择主键时应遵守的规则),举一个 `users` 表中定义 `AUTO_RANDOM` 主键的例子:
131123

132-
{{< copyable "sql" >}}
133-
134124
```sql
135125
CREATE TABLE `bookshop`.`users` (
136126
`id` bigint AUTO_RANDOM,
@@ -160,8 +150,6 @@ CREATE TABLE `bookshop`.`users` (
160150
161151
需遵循[选择聚簇索引时应遵守的规则](#选择聚簇索引时应遵守的规则),假设需要建立一张 `books``users` 之间关联的表,代表用户对某书籍的评分。使用表名 `ratings` 来创建该表,并使用 `book_id``user_id` 构建[复合主键](/constraints.md#主键约束),并在该主键上建立聚簇索引:
162152

163-
{{< copyable "sql" >}}
164-
165153
```sql
166154
CREATE TABLE `bookshop`.`ratings` (
167155
`book_id` bigint,
@@ -182,8 +170,6 @@ CREATE TABLE `bookshop`.`ratings` (
182170

183171
你可以将 `DEFAULT`[支持的 SQL 函数](/basic-features.md#数据类型函数和操作符)结合使用,将默认值的计算移出应用层,从而节省应用层的资源(当然,计算所消耗的资源并不会凭空消失,只是被转移到了 TiDB 集群中)。常见的,希望实现数据插入时,可默认填充默认的时间。还是使用 `ratings` 作为示例,可使用以下语句:
184172

185-
{{< copyable "sql" >}}
186-
187173
```sql
188174
CREATE TABLE `bookshop`.`ratings` (
189175
`book_id` bigint,
@@ -196,8 +182,6 @@ CREATE TABLE `bookshop`.`ratings` (
196182

197183
额外的,如果需更新时也默认填入当前时间,可使用以下语句(但 `ON UPDATE` 后仅可填入[当前时间相关语句](https://pingcap.github.io/sqlgram/#NowSymOptionFraction)`DEFAULT` 后支持[更多选择](https://pingcap.github.io/sqlgram/#DefaultValueExpr)):
198184

199-
{{< copyable "sql" >}}
200-
201185
```sql
202186
CREATE TABLE `bookshop`.`ratings` (
203187
`book_id` bigint,
@@ -214,8 +198,6 @@ CREATE TABLE `bookshop`.`ratings` (
214198

215199
例如,你需要确保用户的昵称唯一,可以这样改写 `users` 表的创建 SQL:
216200

217-
{{< copyable "sql" >}}
218-
219201
```sql
220202
CREATE TABLE `bookshop`.`users` (
221203
`id` bigint AUTO_RANDOM,
@@ -233,8 +215,6 @@ CREATE TABLE `bookshop`.`users` (
233215

234216
还是使用用户昵称来举例子,除了昵称唯一,还希望昵称不可为空,于是此处可以这样改写 `users` 表的创建 SQL:
235217

236-
{{< copyable "sql" >}}
237-
238218
```sql
239219
CREATE TABLE `bookshop`.`users` (
240220
`id` bigint AUTO_RANDOM,
@@ -262,8 +242,6 @@ CREATE TABLE `bookshop`.`users` (
262242

263243
TiFlash 部署完成后并不会自动同步数据,而需要手动指定需要同步的表,开启同步副本仅需一行 SQL,如下所示:
264244

265-
{{< copyable "sql" >}}
266-
267245
```sql
268246
ALTER TABLE {table_name} SET TIFLASH REPLICA {count};
269247
```
@@ -279,8 +257,6 @@ ALTER TABLE {table_name} SET TIFLASH REPLICA {count};
279257

280258
`ratings` 表开启 1 个 TiFlash 副本:
281259

282-
{{< copyable "sql" >}}
283-
284260
```sql
285261
ALTER TABLE `bookshop`.`ratings` SET TIFLASH REPLICA 1;
286262
```
@@ -291,16 +267,12 @@ ALTER TABLE `bookshop`.`ratings` SET TIFLASH REPLICA 1;
291267
292268
随后正常进行查询即可:
293269

294-
{{< copyable "sql" >}}
295-
296270
```sql
297271
SELECT HOUR(`rated_at`), AVG(`score`) FROM `bookshop`.`ratings` GROUP BY HOUR(`rated_at`);
298272
```
299273

300274
也可使用 [EXPLAIN ANALYZE](/sql-statements/sql-statement-explain-analyze.md) 语句查看此语句是否使用了 TiFlash 引擎:
301275

302-
{{< copyable "sql" >}}
303-
304276
```sql
305277
EXPLAIN ANALYZE SELECT HOUR(`rated_at`), AVG(`score`) FROM `bookshop`.`ratings` GROUP BY HOUR(`rated_at`);
306278
```
@@ -327,8 +299,6 @@ EXPLAIN ANALYZE SELECT HOUR(`rated_at`), AVG(`score`) FROM `bookshop`.`ratings`
327299

328300
如果将数据库初始化脚本命名为 `init.sql` 并保存,可使用以下语句来执行数据库初始化:
329301

330-
{{< copyable "shell-regular" >}}
331-
332302
```shell
333303
mysql
334304
-u root \
@@ -340,8 +310,6 @@ mysql
340310

341311
需查看 `bookshop` 数据库下的所有表,可使用 [SHOW TABLES](/sql-statements/sql-statement-show-tables.md#show-full-tables) 语句:
342312

343-
{{< copyable "sql" >}}
344-
345313
```sql
346314
SHOW TABLES IN `bookshop`;
347315
```

develop/dev-guide-delete-data.md

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@ aliases: ['/zh/tidb/dev/delete-data']
2020

2121
在 SQL 中,`DELETE` 语句一般为以下形式:
2222

23-
{{< copyable "sql" >}}
24-
2523
```sql
2624
DELETE FROM {table} WHERE {filter}
2725
```
@@ -47,8 +45,6 @@ DELETE FROM {table} WHERE {filter}
4745

4846
假设在开发中发现在特定时间段内,发生了业务错误,需要删除这期间内的所有 [rating](/develop/dev-guide-bookshop-schema-design.md#ratings-表) 的数据,例如,`2022-04-15 00:00:00``2022-04-15 00:15:00` 的数据。此时,可使用 `SELECT` 语句查看需删除的数据条数:
4947

50-
{{< copyable "sql" >}}
51-
5248
```sql
5349
SELECT COUNT(*) FROM `ratings` WHERE `rated_at` >= "2022-04-15 00:00:00" AND `rated_at` <= "2022-04-15 00:15:00";
5450
```
@@ -205,8 +201,6 @@ TiDB 使用[统计信息](/statistics.md)来决定索引的选择,因此,在
205201

206202
在 Java 中,批量删除程序类似于以下内容:
207203

208-
{{< copyable "" >}}
209-
210204
```java
211205
package com.pingcap.bulkDelete;
212206

@@ -274,8 +268,6 @@ public class BatchDeleteExample
274268

275269
在 Golang 中,批量删除程序类似于以下内容:
276270

277-
{{< copyable "" >}}
278-
279271
```go
280272
package main
281273

@@ -379,8 +371,6 @@ with connection:
379371

380372
非事务批量删除的 SQL 语法如下:
381373

382-
{{< copyable "sql" >}}
383-
384374
```sql
385375
BATCH ON {shard_column} LIMIT {batch_size} {delete_statement};
386376
```

0 commit comments

Comments
 (0)