GraphQL小试

之前做的需求,基本都是REST风格,以github提供的api为例,比较二者差异。试用GraphQL,找寻其独到之处


REST

InnoDB一棵B+树,可以存放多少行数据

show global status

结果如下:
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
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
Aborted_clients	2
Aborted_connects 322
Binlog_cache_disk_use 0
Binlog_cache_use 0
Binlog_stmt_cache_disk_use 0
Binlog_stmt_cache_use 0
Bytes_received 35910
Bytes_sent 381776
Com_admin_commands 4
Com_assign_to_keycache 0
Com_alter_db 0
Com_alter_db_upgrade 0
Com_alter_event 0
Com_alter_function 0
Com_alter_instance 0
Com_alter_procedure 0
Com_alter_server 0
Com_alter_table 0
Com_alter_tablespace 0
Com_alter_user 0
Com_analyze 0
Com_begin 0
Com_binlog 0
Com_call_procedure 0
Com_change_db 27
Com_change_master 0
Com_change_repl_filter 0
Com_check 0
Com_checksum 0
Com_commit 0
Com_create_db 0
Com_create_event 0
Com_create_function 0
Com_create_index 0
Com_create_procedure 0
Com_create_server 0
Com_create_table 0
Com_create_trigger 0
Com_create_udf 0
Com_create_user 0
Com_create_view 0
Com_dealloc_sql 0
Com_delete 0
Com_delete_multi 0
Com_do 0
Com_drop_db 0
Com_drop_event 0
Com_drop_function 0
Com_drop_index 0
Com_drop_procedure 0
Com_drop_server 0
Com_drop_table 0
Com_drop_trigger 0
Com_drop_user 0
Com_drop_view 0
Com_empty_query 0
Com_execute_sql 0
Com_explain_other 0
Com_flush 4
Com_get_diagnostics 0
Com_grant 0
Com_ha_close 0
Com_ha_open 0
Com_ha_read 0
Com_help 0
Com_insert 0
Com_insert_select 0
Com_install_plugin 0
Com_kill 0
Com_load 0
Com_lock_tables 0
Com_optimize 0
Com_preload_keys 0
Com_prepare_sql 0
Com_purge 0
Com_purge_before_date 0
Com_release_savepoint 0
Com_rename_table 0
Com_rename_user 0
Com_repair 0
Com_replace 0
Com_replace_select 0
Com_reset 0
Com_resignal 0
Com_revoke 0
Com_revoke_all 0
Com_rollback 0
Com_rollback_to_savepoint 0
Com_savepoint 0
Com_select 40
Com_set_option 11
Com_signal 0
Com_show_binlog_events 0
Com_show_binlogs 0
Com_show_charsets 0
Com_show_collations 0
Com_show_create_db 0
Com_show_create_event 0
Com_show_create_func 0
Com_show_create_proc 0
Com_show_create_table 0
Com_show_create_trigger 0
Com_show_databases 0
Com_show_engine_logs 0
Com_show_engine_mutex 0
Com_show_engine_status 0
Com_show_events 0
Com_show_errors 0
Com_show_fields 78
Com_show_function_code 0
Com_show_function_status 0
Com_show_grants 0
Com_show_keys 0
Com_show_master_status 0
Com_show_open_tables 0
Com_show_plugins 0
Com_show_privileges 0
Com_show_procedure_code 0
Com_show_procedure_status 0
Com_show_processlist 0
Com_show_profile 0
Com_show_profiles 0
Com_show_relaylog_events 0
Com_show_slave_hosts 0
Com_show_slave_status 0
Com_show_status 3
Com_show_storage_engines 0
Com_show_table_status 4
Com_show_tables 5
Com_show_triggers 0
Com_show_variables 6
Com_show_warnings 0
Com_show_create_user 0
Com_shutdown 0
Com_slave_start 0
Com_slave_stop 0
Com_group_replication_start 0
Com_group_replication_stop 0
Com_stmt_execute 0
Com_stmt_close 0
Com_stmt_fetch 0
Com_stmt_prepare 0
Com_stmt_reset 0
Com_stmt_send_long_data 0
Com_truncate 0
Com_uninstall_plugin 0
Com_unlock_tables 0
Com_update 0
Com_update_multi 0
Com_xa_commit 0
Com_xa_end 0
Com_xa_prepare 0
Com_xa_recover 0
Com_xa_rollback 0
Com_xa_start 0
Com_stmt_reprepare 0
Connection_errors_accept 0
Connection_errors_internal 0
Connection_errors_max_connections 0
Connection_errors_peer_address 0
Connection_errors_select 0
Connection_errors_tcpwrap 0
Connections 342
Created_tmp_disk_tables 107
Created_tmp_files 8
Created_tmp_tables 164
Delayed_errors 0
Delayed_insert_threads 0
Delayed_writes 0
Flush_commands 1
Handler_commit 5
Handler_delete 0
Handler_discover 0
Handler_external_lock 249
Handler_mrr_init 0
Handler_prepare 0
Handler_read_first 115
Handler_read_key 1806
Handler_read_last 0
Handler_read_next 386
Handler_read_prev 0
Handler_read_rnd 2001
Handler_read_rnd_next 13162
Handler_rollback 0
Handler_savepoint 0
Handler_savepoint_rollback 0
Handler_update 0
Handler_write 4740
Innodb_buffer_pool_dump_status Dumping of buffer pool not started
Innodb_buffer_pool_load_status Buffer pool(s) load completed at 200917 19:39:58
Innodb_buffer_pool_resize_status
Innodb_buffer_pool_pages_data 396
Innodb_buffer_pool_bytes_data 6488064
Innodb_buffer_pool_pages_dirty 3
Innodb_buffer_pool_bytes_dirty 49152
Innodb_buffer_pool_pages_flushed 138
Innodb_buffer_pool_pages_free 7795
Innodb_buffer_pool_pages_misc 0
Innodb_buffer_pool_pages_total 8191
Innodb_buffer_pool_read_ahead_rnd 0
Innodb_buffer_pool_read_ahead 0
Innodb_buffer_pool_read_ahead_evicted 0
Innodb_buffer_pool_read_requests 11382
Innodb_buffer_pool_reads 328
Innodb_buffer_pool_wait_free 0
Innodb_buffer_pool_write_requests 5342
Innodb_data_fsyncs 7
Innodb_data_pending_fsyncs 0
Innodb_data_pending_reads 0
Innodb_data_pending_writes 0
Innodb_data_read 5444096
Innodb_data_reads 368
Innodb_data_writes 155
Innodb_data_written 2295808
Innodb_dblwr_pages_written 2
Innodb_dblwr_writes 1
Innodb_log_waits 0
Innodb_log_write_requests 0
Innodb_log_writes 2
Innodb_os_log_fsyncs 4
Innodb_os_log_pending_fsyncs 0
Innodb_os_log_pending_writes 0
Innodb_os_log_written 1024
Innodb_page_size 16384
Innodb_pages_created 69
Innodb_pages_read 327
Innodb_pages_written 138
Innodb_row_lock_current_waits 0
Innodb_row_lock_time 0
Innodb_row_lock_time_avg 0
Innodb_row_lock_time_max 0
Innodb_row_lock_waits 0
Innodb_rows_deleted 0
Innodb_rows_inserted 4440
Innodb_rows_read 6149
Innodb_rows_updated 0
Innodb_num_open_files 32
Innodb_truncated_status_writes 0
Innodb_available_undo_logs 128
Key_blocks_not_flushed 0
Key_blocks_unused 13394
Key_blocks_used 3
Key_read_requests 38
Key_reads 5
Key_write_requests 0
Key_writes 0
Locked_connects 0
Max_execution_time_exceeded 0
Max_execution_time_set 0
Max_execution_time_set_failed 0
Max_used_connections 3
Max_used_connections_time 2020-09-17 21:26:19
Not_flushed_delayed_rows 0
Ongoing_anonymous_transaction_count 0
Open_files 14
Open_streams 0
Open_table_definitions 131
Open_tables 93
Opened_files 355
Opened_table_definitions 131
Opened_tables 309
Performance_schema_accounts_lost 0
Performance_schema_cond_classes_lost 0
Performance_schema_cond_instances_lost 0
Performance_schema_digest_lost 0
Performance_schema_file_classes_lost 0
Performance_schema_file_handles_lost 0
Performance_schema_file_instances_lost 0
Performance_schema_hosts_lost 0
Performance_schema_index_stat_lost 0
Performance_schema_locker_lost 0
Performance_schema_memory_classes_lost 0
Performance_schema_metadata_lock_lost 0
Performance_schema_mutex_classes_lost 0
Performance_schema_mutex_instances_lost 0
Performance_schema_nested_statement_lost 0
Performance_schema_prepared_statements_lost 0
Performance_schema_program_lost 0
Performance_schema_rwlock_classes_lost 0
Performance_schema_rwlock_instances_lost 0
Performance_schema_session_connect_attrs_lost 0
Performance_schema_socket_classes_lost 0
Performance_schema_socket_instances_lost 0
Performance_schema_stage_classes_lost 0
Performance_schema_statement_classes_lost 0
Performance_schema_table_handles_lost 0
Performance_schema_table_instances_lost 0
Performance_schema_table_lock_stat_lost 0
Performance_schema_thread_classes_lost 0
Performance_schema_thread_instances_lost 0
Performance_schema_users_lost 0
Prepared_stmt_count 0
Qcache_free_blocks 1
Qcache_free_memory 16760152
Qcache_hits 0
Qcache_inserts 0
Qcache_lowmem_prunes 0
Qcache_not_cached 40
Qcache_queries_in_cache 0
Qcache_total_blocks 1
Queries 198
Questions 193
Select_full_join 0
Select_full_range_join 0
Select_range 0
Select_range_check 0
Select_scan 161
Slave_open_temp_tables 0
Slow_launch_threads 0
Slow_queries 0
Sort_merge_passes 1
Sort_range 0
Sort_rows 2001
Sort_scan 21
Ssl_accept_renegotiates 0
Ssl_accepts 0
Ssl_callback_cache_hits 0
Ssl_cipher
Ssl_cipher_list
Ssl_client_connects 0
Ssl_connect_renegotiates 0
Ssl_ctx_verify_depth 0
Ssl_ctx_verify_mode 0
Ssl_default_timeout 0
Ssl_finished_accepts 0
Ssl_finished_connects 0
Ssl_server_not_after
Ssl_server_not_before
Ssl_session_cache_hits 0
Ssl_session_cache_misses 0
Ssl_session_cache_mode NONE
Ssl_session_cache_overflows 0
Ssl_session_cache_size 0
Ssl_session_cache_timeouts 0
Ssl_sessions_reused 0
Ssl_used_session_cache_entries 0
Ssl_verify_depth 0
Ssl_verify_mode 0
Ssl_version
Table_locks_immediate 115
Table_locks_waited 0
Table_open_cache_hits 207
Table_open_cache_misses 309
Table_open_cache_overflows 209
Tc_log_max_pages_used 0
Tc_log_page_size 0
Tc_log_page_waits 0
Threads_cached 2
Threads_connected 1
Threads_created 3
Threads_running 1
Uptime 344001
Uptime_since_flush_status 344001


Go中的iota

基本使用

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
package main

import "fmt"

const a0 = iota // a0 = 0 // const出现, iota初始化为0

const (
a1 = iota // a1 = 0 // 又一个const出现, iota初始化为0
a2 = iota // a2 = 1 // const新增一行, iota 加1
a3 = 6 // a3 = 6 // 自定义一个常量
a4 // a4 = 6 // 不赋值就和上一行相同
a5 = iota // a5 = 4 // const已经新增了4行, 所以这里是4
)

const (
b = iota // b = 0
c // c = 1
d = 1111
e
f = iota
)

const (
TestMin = -1
TestA
TestB = iota
TestC
)

func main() {

fmt.Println("a0:", a0)
fmt.Println("a1:", a1)
fmt.Println("a2:", a2)
fmt.Println("a3:", a3)
fmt.Println("a4:", a4)
fmt.Println("a5:", a5)

fmt.Println("---------")

fmt.Println("b is:", b)
fmt.Println("c is:", c)
fmt.Println("d is:", d)
fmt.Println("e is:", e)
fmt.Println("f is:", f)

fmt.Println("---------")

fmt.Println("TestMin:", TestMin)
fmt.Println("TestA:", TestA)
fmt.Println("TestB:", TestB)
fmt.Println("TestC:", TestC)

}


kubernetes为什么叫k8s

小伙伴赴云原生大会前夕,一起探讨畅聊了k8s相关内容。在听到其所说的某相关项目官网为prow.k8s.io,当即提出质疑。

一种诡异的Linux磁盘空间被占满问题


- 服务报错,提示没有足够磁盘空间.

  • 登录服务器,使用df -h 查看磁盘空间使用率(此台为模拟,真实服务器使用率100%)

  • 在根目录下使用du -sh *, 查看各文件夹大小, 发现其实这些文件加一起也占不到服务器磁盘空间40G的一半

Rust中的关键字

严格关键字


  1. as - 强制类型转换,消除特定包含项的 trait 的歧义,或者对 use 和 extern crate 语句中的项重命名

  2. async - 返回一个 Future 而不是阻塞当前线程( 2018版新增)

  3. await - 暂停执行直到 Future 的结果就绪( 2018版新增)

  4. break - 立刻退出循环

  5. const - 定义常量或不变裸指针(constant raw pointer)

  6. continue - 继续进入下一次循环迭代

  7. crate - 链接(link)一个外部 crate 或一个代表宏定义的 crate 的宏变量

  8. dyn - 动态分发 trait 对象

  9. else - 作为 if 和 if let 控制流结构的 fallback

  10. enum - 定义一个枚举

  11. extern - 链接一个外部 crate 、函数或变量

  12. false - 布尔字面值 false

  13. fn - 定义一个函数或 函数指针类型 (function pointer type)

  14. for - 遍历一个迭代器或实现一个 trait 或者指定一个更高级的生命周期

  15. if - 基于条件表达式的结果分支

  16. impl - 实现自有或 trait 功能

  17. in - for - 循环语法的一部分

  18. let - 绑定一个变量

  19. loop - 无条件循环

  20. match - 模式匹配

  21. mod - 定义一个模块

  22. move - 使闭包获取其所捕获项的所有权

  23. mut - 表示引用、裸指针或模式绑定的可变性

  24. pub - 表示结构体字段、impl 块或模块的公有可见性

  25. ref - 通过引用绑定

  26. return - 从函数中返回

  27. Self - 定义或实现 trait 的类型的类型别名

  28. self - 表示方法本身或当前模块

  29. static - 表示全局变量或在整个程序执行期间保持其生命周期

  30. struct - 定义一个结构体

  31. super - 表示当前模块的父模块

  32. trait - 定义一个 trait

  33. true - 布尔字面值 true

  34. type - 定义一个类型别名或关联类型

  35. union - 定义一个 union 并且是 union 声明中唯一用到的关键字

  36. use - 引入外部空间的符号

  37. where - 表示一个约束类型的从句

  38. while - 基于一个表达式的结果判断是否进行循环

mtr命令

  • Mac使用此命令需先安装,推荐使用brew install mtr

  • 如下使用该命令测试到谷歌 DNS服务器 的连通性