-
Notifications
You must be signed in to change notification settings - Fork 0
/
demo.cast
219 lines (219 loc) · 31.8 KB
/
demo.cast
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
{"version": 2, "width": 172, "height": 51, "timestamp": 1641691019, "idle_time_limit": 5.0, "env": {"SHELL": "/bin/zsh", "TERM": "xterm-256color"}}
[0.10887, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r\u001b]2;menglong@huangmeongdeMBP:~/Documents/GitHub/hackathon\u0007\u001b]1;..Hub/hackathon\u0007"]
[0.112746, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[01;32mΩ \u001b[36mhackathon\u001b[00m \u001b[K"]
[0.112839, "o", "\u001b[?1h\u001b=\u001b[?2004h"]
[7.782087, "o", "\u001b[7mmysql -uroot -h 127.0.0.1 -P4000 -Dtest\u001b[27m\r\r\n\u001b[K"]
[8.917247, "o", "\u001b[A\u001b[13C\u001b[27mm\u001b[27my\u001b[27ms\u001b[27mq\u001b[27ml\u001b[27m \u001b[27m-\u001b[27mu\u001b[27mr\u001b[27mo\u001b[27mo\u001b[27mt\u001b[27m \u001b[27m-\u001b[27mh\u001b[27m \u001b[27m1\u001b[27m2\u001b[27m7\u001b[27m.\u001b[27m0\u001b[27m.\u001b[27m0\u001b[27m.\u001b[27m1\u001b[27m \u001b[27m-\u001b[27mP\u001b[27m4\u001b[27m0\u001b[27m0\u001b[27m0\u001b[27m \u001b[27m-\u001b[27mD\u001b[27mt\u001b[27me\u001b[27ms\u001b[27mt\u001b[1B\r\u001b[K"]
[8.917686, "o", "\u001b[?1l\u001b>\u001b[?2004l\r\r\n"]
[8.919248, "o", "\u001b]2;mysql -uroot -h 127.0.0.1 -P4000 -Dtest\u0007\u001b]1;mysql\u0007"]
[8.941492, "o", "Reading table information for completion of table and column names\r\nYou can turn off this feature to get a quicker startup with -A\r\n\r\n"]
[8.941687, "o", "Welcome to the MySQL monitor. Commands end with ; or \\g.\r\n"]
[8.942147, "o", "Your MySQL connection id is 1363\r\nServer version: 5.7.25-TiDB-v5.4.0-alpha-511-ga69c1eae0 TiDB Server (Apache License 2.0) Community Edition, MySQL 5.7 compatible\r\n\r\nCopyright (c) 2000, 2021, Oracle and/or its affiliates.\r\n\r\nOracle is a registered trademark of Oracle Corporation and/or its\r\naffiliates. Other names may be trademarks of their respective\r\nowners.\r\n\r\n"]
[8.943108, "o", "Type 'help;' or '\\h' for help. Type '\\c' to clear the current input statement.\r\n\r\n"]
[8.94339, "o", "mysql> "]
[15.018952, "o", "-- 示例使"]
[15.019047, "o", "用一个不断更新的表\r\n"]
[15.019212, "o", "mysql> "]
[21.05715, "o", "SELEC"]
[21.057435, "o", "T * FROM dodo_say;\r\n"]
[21.061081, "o", "+----+--------------------+-----------------------------------------------+\r\n| id | name | quote |\r\n+----+--------------------+-----------------------------------------------+\r\n| 1 | 老实的渡渡鸟 | 工欲善其事,必先利其器。 |\r\n| 2 | 热情的渡渡鸟 | 不积跬步,无以至千里。 |\r\n| 3 | 害羞的渡渡鸟 | 与其临渊羡鱼,不如退而结网。 |\r\n| 4 | 多疑的渡渡鸟 | 谦以待人,虚以接物。 |\r\n"]
[21.061337, "o", "| 5 | 活泼的渡渡鸟 | 不在其位,不谋其政。 |\r\n| 6 | 开朗的渡渡鸟 | 一寸光阴一寸金。 |\r\n| 7 | 滑稽的渡渡鸟 | 不管怎么样,明天又是新的一天。 |\r\n| 8 | 古怪的渡渡鸟 | 与其临渊羡鱼,不如退而结网。 |\r\n| 9 | 热情的渡渡鸟 | 业精于勤,荒于嬉。 |\r\n| 10 | 拘谨的渡渡鸟 | 哀其不幸,怒其不争。 |\r\n| 11 | 谨慎的渡渡鸟 | 学而不思则罔,思而不学则殆。 |\r\n| 12 | 凶残的渡渡鸟 | 尺有所短,寸有所长。 |\r\n| 13 | 怯弱的渡渡鸟 | 三人行,必有我师。 |\r\n| 14 | 温柔的渡渡鸟 | 尺有所短,寸有所长。 |\r\n| 15 | 暴躁的渡渡鸟 | 临渊羡鱼,不如退而结网。 "]
[21.061409, "o", " |\r\n| 16 | 难过的渡渡鸟 | 常求有利别人,不求有利自己。 |\r\n| 17 | 忧郁的渡渡鸟 | 不积跬步,无以至千里。 |\r\n| 18 | 焦虑的渡渡鸟 | 人无远虑,必有近忧。 |\r\n| 19 | 慷慨的渡渡鸟 | 工欲善其事,必先利其器。 |\r\n"]
[21.061563, "o", "| 20 | 仁慈的渡渡鸟 | 不积跬步,无以至千里。 |\r\n+----+--------------------+-----------------------------------------------+\r\n20 rows in set (0.00 sec)\r\n\r\nmysql> "]
[29.900159, "o", "-- "]
[29.90033, "o", "系统表中新增的存档点配置,"]
[29.900506, "o", "默认每小时自动创建一个存档点,24小时后过期\r\n"]
[29.90084, "o", "mysql> "]
[36.121482, "o", "SELEC"]
[36.121586, "o", "T variable_name, variable_value FROM mysql.ti"]
[36.121603, "o", "db WHER"]
[36.121617, "o", "E vari"]
[36.121632, "o", "able_"]
[36.121646, "o", "name L"]
[36.12166, "o", "IKE '"]
[36.121674, "o", "%save_"]
[36.121688, "o", "point"]
[36.121701, "o", "%';\r\n"]
[36.129668, "o", "+------------------------------+----------------+\r\n| variable_name | variable_value |\r\n+------------------------------+----------------+\r\n| tikv_gc_save_point_interval | 1h0m0s |\r\n| tikv_gc_save_point_life_time | 24h0m0s |\r\n+------------------------------+----------------+\r\n2 rows in set (0.01 sec)\r\n\r\n"]
[36.129915, "o", "mysql> "]
[43.441719, "o", "-- 当前存"]
[43.441883, "o", "档点列表\r\n"]
[43.44216, "o", "mysql> "]
[47.81012, "o", "SELECT "]
[47.810235, "o", "* FROM mysql.gc_save_point;\r\n"]
[47.814207, "o", "+---------------------+\r\n| save_point |\r\n+---------------------+\r\n| 2022-01-09 04:00:00 |\r\n| 2022-01-09 05:00:00 |\r\n| 2022-01-09 06:00:00 |\r\n| 2022-01-09 07:00:00 |\r\n| 2022-01-09 08:00:00 |\r\n| 2022-01-09 09:00:00 |\r\n+---------------------+\r\n6 rows in set (0.01 sec)\r\n\r\nmysql> "]
[55.204624, "o", "-- mvcc "]
[55.204841, "o", "历史信息查询,_tidb_mvcc_ts / _tidb_"]
[55.204994, "o", "mvcc_op 是增加的虚拟列\r\n"]
[55.205209, "o", "mysql> "]
[59.871329, "o", "SELECT i"]
[59.871448, "o", "d, name, quote, _tidb_mvcc_ts, _tidb_mvcc_op FROM dod"]
[59.871467, "o", "o_say WHE"]
[59.871481, "o", "RE nam"]
[59.871495, "o", "e = \""]
[59.871509, "o", "老实"]
[59.871666, "o", "的渡渡鸟\";\r\n"]
[59.874878, "o", "+----+--------------------+--------------------------------------------------+--------------------+---------------+\r\n| id | name | quote | _tidb_mvcc_ts | _tidb_mvcc_op |\r\n+----+--------------------+--------------------------------------------------+--------------------+---------------+\r\n| 1 | 老实的渡渡鸟 | 工欲善其事,必先利其器。 | 430359275469537283 | Put |\r\n| 1 | 老实的渡渡鸟 | 小不忍则乱大谋 | 430359228232237059 | Put |\r\n"]
[59.875065, "o", "| 1 | 老实的渡渡鸟 | 不自由,毋宁死。 | 430359117963984899 | Put |\r\n| 1 | 老实的渡渡鸟 | 业精于勤,荒于嬉。 | 430358070731210755 | Put |\r\n| 1 | 老实的渡渡鸟 | 小不忍,则乱大谋。 | 430357054910365699 | Put |\r\n| 1 | 老实的渡渡鸟 | 冰冻三尺非一日之寒。 | 430355700464484355 | Put |\r\n| 1 | 老实的渡渡鸟 | 知之为知之,不知为不知,是知也。 | 430355039082774531 | Put |\r\n| 1 | 老实的渡渡鸟 | 业精于勤,荒于嬉。 | 430354385480712195 | Put |\r\n+----+--------------------+--------------------------------------------------+--------------------+---------------+\r\n8 rows in set (0.01 sec)\r\n\r\nmysql> "]
[66.756411, "o", "-- 可"]
[66.756777, "o", "以使用 TiDB 内置函数来让时间戳更好看\r\n"]
[66.757266, "o", "mysql> "]
[73.358758, "o", "SELECT id, n"]
[73.358985, "o", "ame, quote, TIDB_PARSE_TSO(_tidb_mvcc_ts) FROM dodo_say WHERE name = \"老实"]
[73.359183, "o", "的渡渡鸟\";\r\n"]
[73.362425, "o", "+----+--------------------+--------------------------------------------------+-------------------------------+\r\n| id | name | quote | TIDB_PARSE_TSO(_tidb_mvcc_ts) |\r\n+----+--------------------+--------------------------------------------------+-------------------------------+\r\n| 1 | 老实的渡渡鸟 | 工欲善其事,必先利其器。 | 2022-01-09 09:05:51.370000 |\r\n| 1 | 老实的渡渡鸟 | 小不忍则乱大谋 | 2022-01-09 09:02:51.174000 |\r\n"]
[73.362591, "o", "| 1 | 老实的渡渡鸟 | 不自由,毋宁死。 | 2022-01-09 08:55:50.534000 |\r\n| 1 | 老实的渡渡鸟 | 业精于勤,荒于嬉。 | 2022-01-09 07:49:15.658000 |\r\n| 1 | 老实的渡渡鸟 | 小不忍,则乱大谋。 | 2022-01-09 06:44:40.609000 |\r\n| 1 | 老实的渡渡鸟 | 冰冻三尺非一日之寒。 | 2022-01-09 05:18:33.808000 |\r\n| 1 | 老实的渡渡鸟 | 知之为知之,不知为不知,是知也。 | 2022-01-09 04:36:30.837000 |\r\n| 1 | 老实的渡渡鸟 | 业精于勤,荒于嬉。 | 2022-01-09 03:54:57.543000 |\r\n+----+--------------------+--------------------------------------------------+-------------------------------+\r\n8 rows in set (0.01 sec)\r\n\r\n"]
[73.362705, "o", "mysql> "]
[81.025616, "o", "-- 可以观"]
[81.025893, "o", "察到 SafePoint(09:00) 之前的数据,每小时保留一个最新版本\r\n"]
[81.026338, "o", "mysql> "]
[93.056857, "o", "-- 虚拟"]
[93.057129, "o", "列可以进行条件过滤\r\n"]
[93.057303, "o", "mysql> "]
[93.057455, "o", "-- 例如按版本选择"]
[93.057528, "o", "最近5分钟的更新"]
[93.527638, "o", "\r\n"]
[93.527912, "o", "mysql> "]
[99.264847, "o", "SELEC"]
[99.264998, "o", "T id, name, quote, TIDB_PARSE_TSO(_tidb_mvcc_ts) FROM dodo_say "]
[99.265024, "o", "WHERE TID"]
[99.265267, "o", "B_PARSE_TSO(_tidb_mvcc_ts) > SUBTIME(NOW(), '00:05:00');\r\n"]
[99.268862, "o", "+----+--------------------+--------------------------------------------------+-------------------------------+\r\n| id | name | quote | TIDB_PARSE_TSO(_tidb_mvcc_ts) |\r\n+----+--------------------+--------------------------------------------------+-------------------------------+\r\n| 2 | 热情的渡渡鸟 | 三人行,必有我师。 | 2022-01-09 09:18:22.286000 |\r\n| 2 | 热情的渡渡鸟 | 不积跬步,无以至千里。 | 2022-01-09 09:16:52.188000 |\r\n| 3 | 害羞的渡渡鸟 | 冰冻三尺非一日之寒。 | 2022-01-09 09:17:52.286000 |\r\n"]
[99.269047, "o", "| 6 | 开朗的渡渡鸟 | 一寸光阴一寸金。 | 2022-01-09 09:16:22.138000 |\r\n| 7 | 滑稽的渡渡鸟 | 不在沉默中爆发,就在沉默中灭亡。 | 2022-01-09 09:17:22.237000 |\r\n| 8 | 古怪的渡渡鸟 | 与其临渊羡鱼,不如退而结网。 | 2022-01-09 09:15:22.089000 |\r\n| 10 | 拘谨的渡渡鸟 | 哀其不幸,怒其不争。 | 2022-01-09 09:15:52.089000 |\r\n| 13 | 怯弱的渡渡鸟 | 三人行,必有我师。 | 2022-01-09 09:14:21.992000 |\r\n| 14 | 温柔的渡渡鸟 | 尺有所短,寸有所长。 | 2022-01-09 09:13:51.942000 |\r\n| 18 | 焦虑的渡渡鸟 | 人无远虑,必有近忧。 | 2022-01-09 09:14:52.041000 |\r\n+----+--------------------+--------------------------------------------------+-------------------------------+\r\n10 rows i"]
[99.26908, "o", "n set (0.00 sec)\r\n\r\n"]
[99.269208, "o", "mysql> "]
[108.700394, "o", "-- 也可以"]
[108.700576, "o", "找到曾经说过某句话的鸟(即历史版本出"]
[108.700624, "o", "现对应的值)\r\n"]
[108.700817, "o", "mysql> "]
[114.250075, "o", "SELECT "]
[114.250286, "o", "id, name, quote, TIDB_PARSE_TSO(_"]
[114.25033, "o", "tidb_mvcc_ts) FROM dodo_say WHERE quote = '不在沉默中爆发,就在沉默中灭亡。';\r\n"]
[114.253132, "o", "+----+--------------------+--------------------------------------------------+-------------------------------+\r\n| id | name | quote | TIDB_PARSE_TSO(_tidb_mvcc_ts) |\r\n+----+--------------------+--------------------------------------------------+-------------------------------+\r\n| 7 | 滑稽的渡渡鸟 | 不在沉默中爆发,就在沉默中灭亡。 | 2022-01-09 09:17:22.237000 |\r\n| 9 | 热情的渡渡鸟 | 不在沉默中爆发,就在沉默中灭亡。 | 2022-01-09 04:29:30.286000 |\r\n"]
[114.253186, "o", "| 11 | 谨慎的渡渡鸟 | 不在沉默中爆发,就在沉默中灭亡。 | 2022-01-09 08:44:49.749000 |\r\n+----+--------------------+--------------------------------------------------+-------------------------------+\r\n3 rows in set (0.01 sec)\r\n\r\nmysql> "]
[122.065522, "o", "-- 查找"]
[122.065708, "o", "整个表最近20条MVCC记录\r\n"]
[122.065872, "o", "mysql> "]
[127.502504, "o", "SELEC"]
[127.502773, "o", "T id, name, quote, TIDB_PARSE_TSO(_tidb_mvcc_ts) FROM dodo_say ORDER BY _tidb_mvcc_ts DESC LIMIT "]
[127.502809, "o", "20;\r\n"]
[127.506842, "o", "+----+--------------------+--------------------------------------------------+-------------------------------+\r\n| id | name | quote | TIDB_PARSE_TSO(_tidb_mvcc_ts) |\r\n+----+--------------------+--------------------------------------------------+-------------------------------+\r\n| 5 | 活泼的渡渡鸟 | 一寸光阴一寸金。 | 2022-01-09 09:18:52.336000 |\r\n| 2 | 热情的渡渡鸟 | 三人行,必有我师。 | 2022-01-09 09:18:22.286000 |\r\n| 3 | 害羞的渡渡鸟 | 冰冻三尺非一日之寒。 | 2022-01-09 09:17:52.286000 |\r\n"]
[127.507064, "o", "| 7 | 滑稽的渡渡鸟 | 不在沉默中爆发,就在沉默中灭亡。 | 2022-01-09 09:17:22.237000 |\r\n| 2 | 热情的渡渡鸟 | 不积跬步,无以至千里。 | 2022-01-09 09:16:52.188000 |\r\n| 6 | 开朗的渡渡鸟 | 一寸光阴一寸金。 | 2022-01-09 09:16:22.138000 |\r\n| 10 | 拘谨的渡渡鸟 | 哀其不幸,怒其不争。 | 2022-01-09 09:15:52.089000 |\r\n| 8 | 古怪的渡渡鸟 | 与其临渊羡鱼,不如退而结网。 | 2022-01-09 09:15:22.089000 |\r\n| 18 | 焦虑的渡渡鸟 | 人无远虑,必有近忧。 | 2022-01-09 09:14:52.041000 |\r\n| 13 | 怯弱的渡渡鸟 | 三人行,必有我师。 | 2022-01-09 09:14:21.992000 |\r\n| 14 | 温柔的渡渡鸟 | 尺有所短,寸有所长。 | 2022-01-09 09:13:51.94200"]
[127.507182, "o", "0 |\r\n| 5 | 活泼的渡渡鸟 | 不在其位,不谋其政。 | 2022-01-09 09:13:21.893000 |\r\n| 5 | 活泼的渡渡鸟 | 君子坦荡荡,小人长戚戚。 | 2022-01-09 09:12:51.896000 |\r\n| 15 | 暴躁的渡渡鸟 | 临渊羡鱼,不如退而结网。 | 2022-01-09 09:12:21.855000 |\r\n| 10 | 拘谨的渡渡鸟 | 如果冬天来了,春天还会远吗? | 2022-01-09 09:11:51.812000 |\r\n| 18 | 焦虑的渡渡鸟 | 自由是一种美德,美德是一种自由。 | 2022-01-09 09:11:21.762000 |\r\n| 14 | 温柔的渡渡鸟 | 一寸光阴一寸金。 | 2022-01-09 09:10:51.763000 |\r\n| 16 | 难过的渡渡鸟 | 常求有利别人,不求有利自己。 | 2022-01-09 09:10:21.714000 |\r\n| 13 | 怯弱的渡渡鸟 | 多行不义必自毙。 | 2022-01-09 0"]
[127.507247, "o", "9:09:51.665000 |\r\n| 10 | 拘谨的渡渡鸟 | 临渊羡鱼,不如退而结网。 | 2022-01-09 09:09:21.615000 |\r\n+----+--------------------+--------------------------------------------------+-------------------------------+\r\n"]
[127.507449, "o", "20 rows in set (0.00 sec)\r\n\r\nmysql> "]
[135.722724, "o", "-- "]
[135.723004, "o", "可以使用带 _tidb_mvcc_ts 虚拟列的 UPDATE 来篡改历史版本\r\n"]
[135.72346, "o", "mysql> "]
[140.713034, "o", "SELECT "]
[140.713193, "o", "id, name, quote, _tidb_mvcc_ts, _tidb_mvcc_op FROM dodo_say WHERE name = "]
[140.713223, "o", "\"老实的渡渡鸟"]
[140.713238, "o", "\" limi"]
[140.713533, "o", "t 5;\r\n"]
[140.718146, "o", "+----+--------------------+--------------------------------------+--------------------+---------------+\r\n| id | name | quote | _tidb_mvcc_ts | _tidb_mvcc_op |\r\n+----+--------------------+--------------------------------------+--------------------+---------------+\r\n| 1 | 老实的渡渡鸟 | 工欲善其事,必先利其器。 | 430359275469537283 | Put |\r\n| 1 | 老实的渡渡鸟 | 小不忍则乱大谋 | 430359228232237059 | Put |\r\n"]
[140.71819, "o", "| 1 | 老实的渡渡鸟 | 不自由,毋宁死。 | 430359117963984899 | Put |\r\n| 1 | 老实的渡渡鸟 | 业精于勤,荒于嬉。 | 430358070731210755 | Put |\r\n| 1 | 老实的渡渡鸟 | 小不忍,则乱大谋。 | 430357054910365699 | Put |\r\n+----+--------------------+--------------------------------------+--------------------+---------------+\r\n5 rows in set (0.00 sec)\r\n\r\n"]
[140.718436, "o", "mysql> "]
[146.320785, "o", "-- 我们从"]
[146.32105, "o", "上面的 ts 中选一条记录更新\r\n"]
[146.321343, "o", "mysql> "]
[152.802795, "o", "UPDAT"]
[152.803038, "o", "E dodo_say set quote=\"hello\" where name=\"老实的渡渡鸟\" AND _tidb_mvcc_ts = "]
[156.171888, "o", "43035"]
[156.172089, "o", "9117963984899"]
[157.012491, "o", ";"]
[158.365749, "o", "\r\n"]
[158.383982, "o", "Query OK, 1 row affected (0.02 sec)\r\nRows matched: 1 Changed: 1 Warnings: 0\r\n\r\nmysql> "]
[162.768746, "o", "-- 重"]
[162.769093, "o", "新查询\r\n"]
[162.769321, "o", "mysql> "]
[167.852486, "o", "SELEC"]
[167.852943, "o", "T id, name, quote, _tidb_mvcc_ts, _tidb_mvcc_op FROM dodo_say WHERE name = \"老实的渡渡鸟\" limit 5;\r\n"]
[167.85716, "o", "+----+--------------------+--------------------------------------+--------------------+---------------+\r\n| id | name | quote | _tidb_mvcc_ts | _tidb_mvcc_op |\r\n+----+--------------------+--------------------------------------+--------------------+---------------+\r\n| 1 | 老实的渡渡鸟 | 工欲善其事,必先利其器。 | 430359275469537283 | Put |\r\n| 1 | 老实的渡渡鸟 | 小不忍则乱大谋 | 430359228232237059 | Put |\r\n| 1 | 老实的渡渡鸟 | hello | 430359117963984899 | Put |\r\n"]
[167.857398, "o", "| 1 | 老实的渡渡鸟 | 业精于勤,荒于嬉。 | 430358070731210755 | Put |\r\n| 1 | 老实的渡渡鸟 | 小不忍,则乱大谋。 | 430357054910365699 | Put |\r\n+----+--------------------+--------------------------------------+--------------------+---------------+\r\n5 rows in set (0.00 sec)\r\n\r\nmysql> "]
[192.166358, "o", "-- "]
[192.1666, "o", "接下来测试 flashback,我们先删除一部分数据\r\n"]
[192.166776, "o", "mysql> "]
[198.417891, "o", "DELETE"]
[198.418213, "o", " FROM dodo_say WHERE id > 15;\r\n"]
[198.42506, "o", "Query OK, 5 rows affected (0.01 sec)\r\n\r\nmysql> "]
[204.508504, "o", "-- 确"]
[204.508766, "o", "认数据已经删除\r\n"]
[204.50911, "o", "mysql> "]
[208.798254, "o", "SELECT * FR"]
[208.798461, "o", "OM dodo_say;\r\n"]
[208.801015, "o", "+----+--------------------+--------------------------------------------------+\r\n| id | name | quote |\r\n+----+--------------------+--------------------------------------------------+\r\n| 1 | 老实的渡渡鸟 | 工欲善其事,必先利其器。 |\r\n| 2 | 热情的渡渡鸟 | 三人行,必有我师。 |\r\n"]
[208.801178, "o", "| 3 | 害羞的渡渡鸟 | 冰冻三尺非一日之寒。 |\r\n| 4 | 多疑的渡渡鸟 | 谦以待人,虚以接物。 |\r\n| 5 | 活泼的渡渡鸟 | 一寸光阴一寸金。 |\r\n| 6 | 开朗的渡渡鸟 | 一寸光阴一寸金。 |\r\n| 7 | 滑稽的渡渡鸟 | 不在沉默中爆发,就在沉默中灭亡。 |\r\n| 8 | 古怪的渡渡鸟 | 与其临渊羡鱼,不如退而结网。 |\r\n| 9 | 热情的渡渡鸟 | 从善如登,从恶如崩。 |\r\n| 10 | 拘谨的渡渡鸟 | 哀其不幸,怒其不争。 |\r\n| 11 | 谨慎的渡渡鸟 | 学而不思则罔,思而不学则殆。 |\r\n| 12 | 凶残的渡渡鸟 | 尺有所短,寸有所长。 |\r\n| 13 | 怯弱的渡渡鸟 | 三人行,必有"]
[208.801314, "o", "我师。 |\r\n| 14 | 温柔的渡渡鸟 | 尺有所短,寸有所长。 |\r\n| 15 | 暴躁的渡渡鸟 | 临渊羡鱼,不如退而结网。 |\r\n+----+--------------------+--------------------------------------------------+\r\n15 rows in set (0.00 sec)\r\n\r\n"]
[208.801416, "o", "mysql> "]
[214.25444, "o", "-- "]
[214.254754, "o", "可以通过扩展语法查看对应的删除记录\r\n"]
[214.254983, "o", "mysql> "]
[219.976002, "o", "SELECT id, TID"]
[219.976283, "o", "B_PARSE_TSO(_tidb_mvcc_ts) FROM dodo_say WHERE _tidb_mvcc_op = 'Delete';\r\n"]
[219.98, "o", "+----+-------------------------------+\r\n| id | TIDB_PARSE_TSO(_tidb_mvcc_ts) |\r\n+----+-------------------------------+\r\n| 16 | 2022-01-09 09:20:18.183000 |\r\n| 17 | 2022-01-09 09:20:18.183000 |\r\n| 18 | 2022-01-09 09:20:18.183000 |\r\n| 19 | 2022-01-09 09:20:18.183000 |\r\n| 20 | 2022-01-09 09:20:18.183000 |\r\n+----+-------------------------------+\r\n5 rows in set (0.00 sec)\r\n\r\n"]
[219.980071, "o", "mysql> "]
[230.692961, "o", "-- "]
[230.69326, "o", "选择删除操作之前的时间戳进行回滚,这是一个 DDL 操作,不实际修改数据\r\n"]
[230.693709, "o", "mysql> "]
[236.072296, "o", "FLASHBACK TABLE dodo_"]
[236.07248, "o", "say TO TIMESTAMP "]
[237.329631, "o", "'"]
[237.4762, "o", "'"]
[237.902129, "o", ";"]
[238.427096, "o", "\b"]
[238.554895, "o", "\b"]
[244.103428, "o", "2';\b\b0';\b\b2';\b\b2';\b\b-';\b\b0';\b\b1';\b\b-';\b\b0';\b\b9';\b\b ';\b\b0';\b\b9';\b\b:';\b\b2';\b\b0';\b\b:';\b\b1';\b\b8';\b\b"]
[246.273412, "o", "\r\n"]
[246.35174, "o", "Query OK, 0 rows affected (0.07 sec)\r\n\r\n"]
[246.351868, "o", "mysql> "]
[252.846642, "o", "-- 重新"]
[252.846871, "o", "查询确定删除的数据已回滚\r\n"]
[252.847165, "o", "mysql> "]
[256.406296, "o", "SELECT * FROM dodo_say;\r\n"]
[256.409622, "o", "+----+--------------------+--------------------------------------------------+\r\n| id | name | quote |\r\n+----+--------------------+--------------------------------------------------+\r\n| 1 | 老实的渡渡鸟 | 工欲善其事,必先利其器。 |\r\n| 2 | 热情的渡渡鸟 | 三人行,必有我师。 |\r\n| 3 | 害羞的渡渡鸟 | 冰冻三尺非一日之寒。 |\r\n| 4 | 多疑的渡渡鸟 | 谦以待人,虚以接物。 |\r\n| 5 | 活泼的渡渡鸟 | 一寸光阴一寸金。 |\r\n"]
[256.40979, "o", "| 6 | 开朗的渡渡鸟 | 一寸光阴一寸金。 |\r\n| 7 | 滑稽的渡渡鸟 | 不在沉默中爆发,就在沉默中灭亡。 |\r\n| 8 | 古怪的渡渡鸟 | 与其临渊羡鱼,不如退而结网。 |\r\n| 9 | 热情的渡渡鸟 | 从善如登,从恶如崩。 |\r\n| 10 | 拘谨的渡渡鸟 | 哀其不幸,怒其不争。 |\r\n| 11 | 谨慎的渡渡鸟 | 学而不思则罔,思而不学则殆。 |\r\n| 12 | 凶残的渡渡鸟 | 尺有所短,寸有所长。 |\r\n| 13 | 怯弱的渡渡鸟 | 三人行,必有我师。 |\r\n| 14 | 温柔的渡渡鸟 | 尺有所短,寸有所长。 |\r\n| 15 | 暴躁的渡渡鸟 | 临渊羡鱼,不如退而结网。 |\r\n| 16 | 难过的渡渡鸟 | 常求有利别"]
[256.409838, "o", "人,不求有利自己。 |\r\n| 17 | 忧郁的渡渡鸟 | 只有在创造中才有自由。 |\r\n| 18 | 焦虑的渡渡鸟 | 人无远虑,必有近忧。 |\r\n| 19 | 慷慨的渡渡鸟 | 工欲善其事,必先利其器。 |\r\n| 20 | 仁慈的渡渡鸟 | 不积跬步,无以至千里。 |\r\n+----+--------------------+--------------------------------------------------+\r\n20 rows in set (0.00 sec)\r\n\r\nmysql> "]
[264.924071, "o", "-- "]
[264.924367, "o", "支持多次 Flashback,我们来一次忘记带 WHERE 的 UPDATE\r\n"]
[264.924646, "o", "mysql> "]
[283.084818, "o", "UPDATE dod"]
[283.085037, "o", "o_say SET quote = 'hi';\r\n"]
[283.089958, "o", "Query OK, 20 rows affected (0.00 sec)\r\nRows matched: 20 Changed: 20 Warnings: 0\r\n\r\n"]
[283.0901, "o", "mysql> "]
[288.884336, "o", "-- ops,"]
[288.884552, "o", "全表都被改了\r\n"]
[288.884804, "o", "mysql> "]
[293.480229, "o", "SELECT * FRO"]
[293.480409, "o", "M dodo_say;\r\n"]
[293.482496, "o", "+----+--------------------+-------+\r\n| id | name | quote |\r\n+----+--------------------+-------+\r\n| 1 | 老实的渡渡鸟 | hi |\r\n| 2 | 热情的渡渡鸟 | hi |\r\n| 3 | 害羞的渡渡鸟 | hi |\r\n| 4 | 多疑的渡渡鸟 | hi |\r\n| 5 | 活泼的渡渡鸟 | hi |\r\n"]
[293.482701, "o", "| 6 | 开朗的渡渡鸟 | hi |\r\n| 7 | 滑稽的渡渡鸟 | hi |\r\n| 8 | 古怪的渡渡鸟 | hi |\r\n| 9 | 热情的渡渡鸟 | hi |\r\n| 10 | 拘谨的渡渡鸟 | hi |\r\n| 11 | 谨慎的渡渡鸟 | hi |\r\n| 12 | 凶残的渡渡鸟 | hi |\r\n| 13 | 怯弱的渡渡鸟 | hi |\r\n| 14 | 温柔的渡渡鸟 | hi |\r\n| 15 | 暴躁的渡渡鸟 | hi |\r\n| 16 | 难过的渡渡鸟 | hi |\r\n| 17 | 忧郁的渡渡鸟 | hi |\r\n| 18 | 焦虑的渡渡鸟 | hi |\r\n| 19 | 慷慨的渡渡鸟 | hi |\r\n| 20 | 仁慈的渡渡鸟 | hi |\r\n+----+--------------------+-------+\r\n20 rows in set (0.00 sec)\r\n\r\nmysql> "]
[300.610535, "o", "-- 别慌,"]
[300.610619, "o", "回到 10 秒之前\r\n"]
[300.61075, "o", "mysql> "]
[306.179997, "o", "FLASHBACK"]
[306.18026, "o", " TABLE dodo_say TO TIMESTAMP SUBTIME(NOW(), '00:00:10');\r\n"]
[306.253718, "o", "Query OK, 0 rows affected (0.08 sec)\r\n\r\n"]
[306.253848, "o", "mysql> "]
[310.815524, "o", "-- "]
[310.815798, "o", "回滚之后,数据恢复了\r\n"]
[310.816151, "o", "mysql> "]
[314.877497, "o", "SELECT * FR"]
[314.877782, "o", "OM dodo_say;\r\n"]
[314.880391, "o", "+----+--------------------+--------------------------------------------------+\r\n| id | name | quote |\r\n+----+--------------------+--------------------------------------------------+\r\n| 1 | 老实的渡渡鸟 | 工欲善其事,必先利其器。 |\r\n| 2 | 热情的渡渡鸟 | 三人行,必有我师。 |\r\n| 3 | 害羞的渡渡鸟 | 冰冻三尺非一日之寒。 |\r\n| 4 | 多疑的渡渡鸟 | 谦以待人,虚以接物。 |\r\n| 5 | 活泼的渡渡鸟 | 一寸光阴一寸金。 |\r\n"]
[314.880534, "o", "| 6 | 开朗的渡渡鸟 | 一寸光阴一寸金。 |\r\n| 7 | 滑稽的渡渡鸟 | 不在沉默中爆发,就在沉默中灭亡。 |\r\n| 8 | 古怪的渡渡鸟 | 与其临渊羡鱼,不如退而结网。 |\r\n| 9 | 热情的渡渡鸟 | 从善如登,从恶如崩。 |\r\n| 10 | 拘谨的渡渡鸟 | 哀其不幸,怒其不争。 |\r\n| 11 | 谨慎的渡渡鸟 | 学而不思则罔,思而不学则殆。 |\r\n| 12 | 凶残的渡渡鸟 | 尺有所短,寸有所长。 |\r\n| 13 | 怯弱的渡渡鸟 | 三人行,必有我师。 |\r\n| 14 | 温柔的渡渡鸟 | 尺有所短,寸有所长。 |\r\n| 15 | 暴躁的渡渡鸟 | 临渊羡鱼,不如退而结网。 |\r\n| 16 | 难过的渡渡鸟 | 常求有利别"]
[314.880728, "o", "人,不求有利自己。 |\r\n| 17 | 忧郁的渡渡鸟 | 只有在创造中才有自由。 |\r\n| 18 | 焦虑的渡渡鸟 | 人无远虑,必有近忧。 |\r\n| 19 | 慷慨的渡渡鸟 | 工欲善其事,必先利其器。 |\r\n| 20 | 仁慈的渡渡鸟 | 不积跬步,无以至千里。 |\r\n+----+--------------------+--------------------------------------------------+\r\n20 rows in set (0.00 sec)\r\n\r\nmysql> "]
[358.962396, "o", "-- 谢谢"]
[358.962705, "o", "观看"]
[359.988196, "o", "\r\n"]
[359.988506, "o", "mysql> "]
[362.310371, "o", "e"]
[362.501593, "o", "x"]
[362.628326, "o", "i"]
[362.768557, "o", "t"]
[363.123246, "o", "\r\n"]
[363.125987, "o", "Bye\r\n"]
[363.128872, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[363.128954, "o", "\u001b]2;menglong@huangmeongdeMBP:~/Documents/GitHub/hackathon\u0007\u001b]1;..Hub/hackathon\u0007"]
[363.140564, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[01;32mΩ \u001b[36mhackathon\u001b[00m \u001b[K"]
[363.140747, "o", "\u001b[?1h\u001b=\u001b[?2004h"]
[363.67711, "o", "\u001b[?2004l\r\r\n"]