[TOC]
# 聯接算法
OceanBase 數據庫當前版本支持 NESTED LOOP JOIN、 HASH JOIN 和 MERGE JOIN 三種不同的聯接算法。
HASH JOIN 和 MERGE JOIN 只適用于等值的聯接條件,NESTED LOOP JOIN 可用于任意的聯接條件。
## NESTED LOOP JOIN
NESTED LOOP JOIN 就是掃描一個表(外表),每讀到該表中的一條記錄,就去“掃描”另一張表(內表)找到滿足條件的數據。
這里的“掃描”可以是利用索引快速定位掃描,也可以是全表掃描。通常來說,全表掃描的性能是很差的,所以如果聯接條件的列上沒有索引,優化器一般就不會選擇 NESTED LOOP JOIN。在 OceanBase 數據庫中,執行計劃中展示了是否能夠利用索引快速定位掃描。
如下例所示,第一個計劃對于內表的掃描是全表掃描,因為聯接條件是`t1.c = t2.c`,而 t2 沒有在 c 上面的索引。第二個計劃對于內表的掃描能夠使用索引快速找到匹配的行,主要原因是聯接條件為`t1.b = t2.b`,而且 t2 選擇了創建在 b 列上的索引 k1 作為訪問路徑,這樣對于 t1 中的每一行的每個 b 值,t2 都可以根據索引快速找到滿足條件的匹配行。
~~~
obclient>CREATE TABLE t1(a INT PRIMARY KEY, b INT, c INT, KEY k1(b));
Query OK, 0 rows affected (0.24 sec)
obclient>>CREATE TABLE t2(a INT PRIMARY KEY, b INT, c INT, KEY k1(b));
Query OK, 0 rows affected (0.29 sec)
obclient> EXPLAIN EXTENDED_NOADDR SELECT/*+USE_NL(t1 t2)*/ * FROM t1, t2
WHERE t1.c = t2.c;
+-----------------------------------------------------------------+
| Query Plan |
+-----------------------------------------------------------------+
| ===========================================
|ID|OPERATOR |NAME|EST. ROWS|COST |
-------------------------------------------
|0 |NESTED-LOOP JOIN| |1980 |623742|
|1 | TABLE SCAN |t1 |1000 |455 |
|2 | TABLE SCAN |t2 |2 |622 |
===========================================
Outputs & filters:
-------------------------------------
0 - output([t1.a], [t1.b], [t1.c], [t2.a], [t2.b], [t2.c]), filter(nil),
conds(nil), nl_params_([t1.c])
1 - output([t1.c], [t1.a], [t1.b]), filter(nil),
access([t1.c], [t1.a], [t1.b]), partitions(p0),
is_index_back=false,
range_key([t1.a]), range(MIN ; MAX)always true
2 - output([t2.c], [t2.a], [t2.b]), filter([? = t2.c]),
access([t2.c], [t2.a], [t2.b]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t2.a]), range(MIN ; MAX)
obclient> EXPLAIN EXTENDED_NOADDR SELECT/*+USE_NL(t1 t2)*/ * FROM t1, t2
WHERE t1.b = t2.b;
+-----------------------------------------------------------------+
| Query Plan |
+-----------------------------------------------------------------+
| ============================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
--------------------------------------------
|0 |NESTED-LOOP JOIN| |1980 |94876|
|1 | TABLE SCAN |t1 |1000 |455 |
|2 | TABLE SCAN |t2(k1)|2 |94 |
============================================
Outputs & filters:
-------------------------------------
0 - output([t1.a], [t1.b], [t1.c], [t2.a], [t2.b], [t2.c]), filter(nil),
conds(nil), nl_params_([t1.b])
1 - output([t1.b], [t1.a], [t1.c]), filter(nil),
access([t1.b], [t1.a], [t1.c]), partitions(p0),
is_index_back=false,
range_key([t1.a]), range(MIN ; MAX)always true
2 - output([t2.b], [t2.a], [t2.c]), filter(nil),
access([t2.b], [t2.a], [t2.c]), partitions(p0),
is_index_back=true,
range_key([t2.b], [t2.a]), range(MIN ; MAX),
range_cond([? = t2.b])
~~~
NESTED LOOP JOIN 可能會對內表進行多次全表掃描,因為每次掃描都需要從存儲層重新迭代一次,這個代價相對是比較高的,所以 OceanBase 數據庫支持對內表進行一次掃描并把結果物化在內存中,這樣在下一次執行掃描時就可以直接在內存中掃描相關的數據,而不需要從存儲層進行多次掃描。但是物化在內存中是有代價的,所以 OceanBase 數據庫的優化器基于代價去判斷是否需要物化內表。
NESTED LOOP JOIN 的一個優化變種是 BLOCKED NESTED LOOP JOIN,它每次從外表中讀取一個 block 大小的行,然后再去掃描內表找到滿足條件的數據,這樣可以減少內表的讀取次數。
NESTED LOOP JOIN 通常用在內表行數比較少,而且外表在聯接條件的列上有索引的場景,因為內表中的每一行都可以快速的使用索引定位到相對應的匹配的數據。
同時,OceanBase 數據庫也提供了 HINT 機制`/*+ USE_NL(table_name_list) */`去控制多表聯接的時候選擇 NESTED LOOP JOIN。例如下述場景聯接算法選擇的是 HASH JOIN,而用戶希望使用 NESTED LOOP JOIN,就可以使用上述 HINT 進行控制。
~~~
obclient>CREATE TABLE t1(c1 INT, c2 INT);
Query OK, 0 rows affected (0.97 sec)
obclient>CREATE TABLE t2(c1 INT, c2 INT);
Query OK, 0 rows affected (0.29 sec)
obclient>EXPLAIN SELECT * FROM t1,t2 WHERE t1.c1 = t2.c1;
+-----------------------------------------------------------------+
| Query Plan |
+-----------------------------------------------------------------+
| ========================================
|ID|OPERATOR |NAME|EST. ROWS|COST |
----------------------------------------
|0 |HASH JOIN | |98010000 |66774608|
|1 | TABLE SCAN|T1 |100000 |68478 |
|2 | TABLE SCAN|T2 |100000 |68478 |
========================================
Outputs & filters:
-------------------------------------
0 - output([T1.C1], [T1.C2], [T2.C1], [T2.C2]), filter(nil),
equal_conds([T1.C1 = T2.C1]), other_conds(nil)
1 - output([T1.C1], [T1.C2]), filter(nil),
access([T1.C1], [T1.C2]), partitions(p0)
2 - output([T2.C1], [T2.C2]), filter(nil),
access([T2.C1], [T2.C2]), partitions(p0)
obclient>EXPLAIN SELECT /*+USE_NL(t1, c2)*/* FROM t1, t2 WHERE t1.c1 = t2.c1;
+-----------------------------------------------------------------+
| Query Plan |
+-----------------------------------------------------------------+
| ===============================================
|ID|OPERATOR |NAME|EST. ROWS|COST |
-----------------------------------------------
|0 |NESTED-LOOP JOIN| |98010000 |4595346207|
|1 | TABLE SCAN |T1 |100000 |68478 |
|2 | MATERIAL | |100000 |243044 |
|3 | TABLE SCAN |T2 |100000 |68478 |
===============================================
Outputs & filters:
-------------------------------------
0 - output([T1.C1], [T1.C2], [T2.C1], [T2.C2]), filter(nil),
conds([T1.C1 = T2.C1]), nl_params_(nil)
1 - output([T1.C1], [T1.C2]), filter(nil),
access([T1.C1], [T1.C2]), partitions(p0)
2 - output([T2.C1], [T2.C2]), filter(nil)
3 - output([T2.C1], [T2.C2]), filter(nil),
access([T2.C1], [T2.C2]), partitions(p0)
~~~
NESTED LOOP JOIN 還有以下兩種實現的算法:
* 緩存塊嵌套循環聯接(BLOCKED NESTED LOOP JOIN)
BLOCKED NESTED LOOP JOIN 在 OceanBase 數據庫中的實現方式是 BATCH NESTED LOOP JOIN,通過從外表中批量讀取數據行(默認是 1000 行),然后再去掃描內表找到滿足條件的數據。這樣將批量的數據與內層表的數據進行匹配,減少了內表的讀取次數和內層循環的次數。
如下示例中,`batch_join=true`字段表示本次查詢使用了 BATCH NESTED LOOP JOIN。
~~~
obclient>CREATE TABLE t1(c1 INT PRIMARY KEY);
Query OK, 0 rows affected (0.97 sec)
obclient>CREATE TABLE t2(c1 INT PRIMARY KEY);
Query OK, 0 rows affected (0.97 sec)
obclient>EXPLAIN EXTENDED_NOADDR SELECT /*+USE_NL(t1,t2)*/* FROM t1,t2
WHERE t1.c1=t2.c1\G;
*************************** 1. row ***************************
Query Plan:
============================================
|ID|OPERATOR |NAME|EST. ROWS|COST |
--------------------------------------------
|0 |NESTED-LOOP JOIN| |100001 |3728786|
|1 | TABLE SCAN |t1 |100000 |59654 |
|2 | TABLE GET |t2 |1 |36 |
============================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t2.c1]), filter(nil),
conds(nil), nl_params_([t1.c1]), inner_get=false, self_join=false, batch_join=true
1 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p0),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
2 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p0),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX),
range_cond([? = t2.c1])
~~~
* 索引嵌套循環聯接(INDEX NESTED LOOP JOIN)
INDEX NESTED LOOP JOIN 是基于索引進行聯接的算法,通過外層表匹配條件直接與內層表索引進行匹配,避免和內層表的每條記錄進行比較,減少了對內層表的匹配次數。
如下示例中存在聯接條件`t1.c1 = t2.c1`,則在 t2 表的 c1 列上有索引或 t1 表的 c1 列上有索引的時候,會使用 INDEX NESTED LOOP JOIN。
~~~
obclient>CREATE TABLE t1(c1 INT PRIMARY KEY);
Query OK, 0 rows affected (0.97 sec)
obclient>CREATE TABLE t2(c1 INT ,c2 INT);
Query OK, 0 rows affected (0.97 sec)
obclient>EXPLAIN SELECT /*+ORDERED USE_NL(t2,t1)*/ * FROM t2,
(SELECT /*+NO_MERGE*/ * FROM t1)t1
WHERE t1.c1 = t2.c1 AND t2.c2 = 1\G;
*************************** 1. row ***************************
Query Plan:
===========================================
|ID|OPERATOR |NAME|EST. ROWS|COST |
-------------------------------------------
|0 |NESTED-LOOP JOIN| |981 |117272|
|1 | TABLE SCAN |t2 |990 |80811 |
|2 | SUBPLAN SCAN |t1 |1 |37 |
|3 | TABLE GET |t1 |1 |36 |
===========================================
Outputs & filters:
-------------------------------------
0 - output([t2.c1], [t2.c2], [t1.c1]), filter(nil), conds(nil), nl_params_([t2.c1])
1 - output([t2.c1], [t2.c2]), filter([t2.c2 = 1]), access([t2.c1], [t2.c2]), partitions(p0)
2 - output([t1.c1]), filter(nil), access([t1.c1])
3 - output([t1.c1]), filter(nil), access([t1.c1]), partitions(p0)
~~~
在 outputs & filters 的輸出結果中`nl_param`出現參數`[t2.c1]`,說明執行了條件下壓優化。詳細信息請參考[JOIN](https://open.oceanbase.com/docs/community/oceanbase-database/V3.1.0/JOIN-1-2)。
一般地,在進行查詢優化時,OceanBase 數據庫優化器會優先選擇 INDEX NESTED LOOP JOIN,然后檢查是否可以使用 BATCH NESTED LOOP JOIN,這兩種優化方式可以一起使用,最后才會選擇 NESTED LOOP JOIN。
## MERGE JOIN
MERGE JOIN 首先會按照聯接的字段對兩個表進行排序(如果內存空間不夠,就需要進行外排),然后開始掃描兩張表進行合并。
合并的過程會從每個表取一條記錄開始匹配,如果符合關聯條件,則放入結果集中;否則,將關聯字段值較小的記錄拋棄,從這條記錄對應的表中取下一條記錄繼續進行匹配,直到整個循環結束。
在多對多的兩張表上進行合并時,通常需要使用臨時空間進行操作。例如 A JOIN B 使用 MERGE JOIN 時,如果對于關聯字段的某一組值,在 A 和 B 中都存在多條記錄 A1、A2…An 和 B1、B2…Bn,則為 A 中每一條記錄 A1、A2…An,都必須對 B 中對所有相等的記錄 B1、B2…Bn 進行一次匹配。這樣,指針需要多次從 B1 移動到 Bn,每一次都需要讀取相應的 B1…Bn 記錄。將 B1…Bn 的記錄預先讀出來放入內存臨時表中,比從原數據頁或磁盤讀取要快。在一些場景中,如果聯接字段上有可用的索引,并且排序一致,那么可以直接跳過排序操作。
通常來說,MERGE JOIN 比較適合兩個輸入表已經有序的情況,否則 HASH JOIN 會更加好。如下示例,展示了兩個 MERGE JOIN 的計劃,其中第一個是需要排序的,第二個是不需要排序的(因為兩個表都選擇了 k1 這兩個索引訪問路徑,這兩個索引本身就是按照 b 排序的)。
~~~
obclient> CREATE TABLE t1(a INT PRIMARY KEY, b INT, c INT, KEY k1(b));
Query OK, 0 rows affected (0.24 sec)
obclient> CREATE TABLE t2(a INT PRIMARY KEY, b INT, c INT, KEY k1(b));
Query OK, 0 rows affected (0.29 sec)
obclient> EXPLAIN SELECT/*+USE_MERGE(t1 t2)*/ * FROM t1, t2 WHERE t1.c = t2.c;
*************************** 1. row ***************************
Query Plan:
| =====================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-------------------------------------
|0 |MERGE JOIN | |1980 |6011|
|1 | SORT | |1000 |2198|
|2 | TABLE SCAN|t1 |1000 |455 |
|3 | SORT | |1000 |2198|
|4 | TABLE SCAN|t2 |1000 |455 |
=====================================
Outputs & filters:
-------------------------------------
0 - output([t1.a], [t1.b], [t1.c], [t2.a], [t2.b], [t2.c]), filter(nil),
equal_conds([t1.c = t2.c]), other_conds(nil)
1 - output([t1.a], [t1.b], [t1.c]), filter(nil), sort_keys([t1.c, ASC])
2 - output([t1.c], [t1.a], [t1.b]), filter(nil),
access([t1.c], [t1.a], [t1.b]), partitions(p0)
3 - output([t2.a], [t2.b], [t2.c]), filter(nil), sort_keys([t2.c, ASC])
4 - output([t2.c], [t2.a], [t2.b]), filter(nil),
access([t2.c], [t2.a], [t2.b]), partitions(p0)
obclient>EXPLAIN SELECT/*+USE_MERGE(t1 t2),INDEX(t1 k1),INDEX(t2 k1)*/ *
FROM t1, t2 WHERE t1.b = t2.b;
*************************** 1. row ***************************
Query Plan:
| =======================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
---------------------------------------
|0 |MERGE JOIN | |1980 |12748|
|1 | TABLE SCAN|t1(k1)|1000 |5566 |
|2 | TABLE SCAN|t2(k1)|1000 |5566 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t1.a], [t1.b], [t1.c], [t2.a], [t2.b], [t2.c]), filter(nil),
equal_conds([t1.b = t2.b]), other_conds(nil)
1 - output([t1.b], [t1.a], [t1.c]), filter(nil),
access([t1.b], [t1.a], [t1.c]), partitions(p0)
2 - output([t2.b], [t2.a], [t2.c]), filter(nil),
access([t2.b], [t2.a], [t2.c]), partitions(p0)
~~~
同時,OceanBase 數據庫也提供了 HINT 機制`/*+ USE_MERGE(table_name_list) */`去控制多表聯接的時候選擇 MERGE JOIN 聯接算法。例如下述場景中聯接算法選擇的是 HASH JOIN,而用戶希望使用 MERGE JOIN,則可以使用上述 HINT 進行控制。
~~~
obclient>CREATE TABLE t1(c1 INT, c2 INT);
Query OK, 0 rows affected (0.97 sec)
obclient>CREATE TABLE t2(c1 INT, c2 INT);
Query OK, 0 rows affected (0.29 sec)
obclient>EXPLAIN SELECT * FROM t1,t2 WHERE t1.c1 = t2.c1;
*************************** 1. row ***************************
Query Plan:
| ========================================
|ID|OPERATOR |NAME|EST. ROWS|COST |
----------------------------------------
|0 |HASH JOIN | |98010000 |66774608|
|1 | TABLE SCAN|T1 |100000 |68478 |
|2 | TABLE SCAN|T2 |100000 |68478 |
========================================
Outputs & filters:
-------------------------------------
0 - output([T1.C1], [T1.C2], [T2.C1], [T2.C2]), filter(nil),
equal_conds([T1.C1 = T2.C1]), other_conds(nil)
1 - output([T1.C1], [T1.C2]), filter(nil),
access([T1.C1], [T1.C2]), partitions(p0)
2 - output([T2.C1], [T2.C2]), filter(nil),
access([T2.C1], [T2.C2]), partitions(p0)
obclient>EXPLAIN SELECT /*+USE_MERGE(t1,t2)*/* FROM t1, t2 WHERE t1.c1 = t2.c1;
*************************** 1. row ***************************
Query Plan:
| =========================================
|ID|OPERATOR |NAME|EST. ROWS|COST |
-----------------------------------------
|0 |MERGE JOIN | |98010000 |67488837|
|1 | SORT | |100000 |563680 |
|2 | TABLE SCAN|T1 |100000 |68478 |
|3 | SORT | |100000 |563680 |
|4 | TABLE SCAN|T2 |100000 |68478 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([T1.C1], [T1.C2], [T2.C1], [T2.C2]), filter(nil),
equal_conds([T1.C1 = T2.C1]), other_conds(nil)
1 - output([T1.C1], [T1.C2]), filter(nil), sort_keys([T1.C1, ASC])
2 - output([T1.C1], [T1.C2]), filter(nil),
access([T1.C1], [T1.C2]), partitions(p0)
3 - output([T2.C1], [T2.C2]), filter(nil), sort_keys([T2.C1, ASC])
4 - output([T2.C1], [T2.C2]), filter(nil),
access([T2.C1], [T2.C2]), partitions(p0)
~~~
## HASH JOIN
HASH JOIN 就是用兩個表中相對較小的表(通常稱為 build table)根據聯接條件創建 hash table,然后逐行掃描較大的表(通常稱為 probe table)并通過探測 hash table 找到匹配的行。 如果 build table 非常大,構建的 hash table 無法在內存中容納時,Oceanbase 數據庫會分別將 build table 和 probe table 按照聯接條件切分成多個分區(partition),每個 partition 都包括一個獨立的、成對匹配的 build table 和 probe table,這樣就將一個大的 HASH JOIN 切分成多個獨立、互相不影響的 HASH JOIN,每一個分區的 HASH JOIN 都能夠在內存中完成。在絕大多數情況下,HASH JOIN 效率比其他 JOIN 方式效率更高。
如下是 HASH JOIN 計劃的示例。
~~~
obclient> CREATE TABLE t1(a INT PRIMARY KEY, b INT, c INT, KEY k1(b));
Query OK, 0 rows affected (0.24 sec)
obclient>CREATE TABLE t2(a INT PRIMARY KEY, b INT, c INT, KEY k1(b));
Query OK, 0 rows affected (0.29 sec)
obclient> EXPLAIN SELECT/*+USE_HASH(t1 t2)*/ * FROM t1, t2 WHERE t1.c = t2.c;
*************************** 1. row ***************************
Query Plan:
| ====================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
------------------------------------
|0 |HASH JOIN | |1980 |4093|
|1 | TABLE SCAN|t1 |1000 |455 |
|2 | TABLE SCAN|t2 |1000 |455 |
====================================
Outputs & filters:
-------------------------------------
0 - output([t1.a], [t1.b], [t1.c], [t2.a], [t2.b], [t2.c]), filter(nil),
equal_conds([t1.c = t2.c]), other_conds(nil)
1 - output([t1.c], [t1.a], [t1.b]), filter(nil),
access([t1.c], [t1.a], [t1.b]), partitions(p0)
2 - output([t2.c], [t2.a], [t2.b]), filter(nil),
access([t2.c], [t2.a], [t2.b]), partitions(p0)
~~~
同時,OcenaBase 數據庫也提供了 HINT 機制`/*+ USE_HASH(table_name_list) */`去控制多表聯接的時候選擇 HASH JOIN 聯接算法。例如下述場景中聯接算法選擇的是 MERGE JOIN,而用戶希望使用 HASH JOIN,則可以使用上述 HINT 進行控制。
~~~
obclient>CREATE TABLE t1(c1 INT, c2 INT, PRIMARY KEY(c1));
Query OK, 0 rows affected (0.31 sec)
obclient>CREATE TABLE t2(c1 INT, c2 INT, PRIMARY KEY(c1));
Query OK, 0 rows affected (0.33 sec)
obclient>EXPLAIN SELECT * FROM t1, t2 WHERE t1.c1 = t2.c1;
*************************** 1. row ***************************
Query Plan:
| ======================================
|ID|OPERATOR |NAME|EST. ROWS|COST |
--------------------------------------
|0 |MERGE JOIN | |100001 |219005|
|1 | TABLE SCAN|T1 |100000 |61860 |
|2 | TABLE SCAN|T2 |100000 |61860 |
======================================
Outputs & filters:
-------------------------------------
0 - output([T1.C1], [T1.C2], [T2.C1], [T2.C2]), filter(nil),
equal_conds([T1.C1 = T2.C1]), other_conds(nil)
1 - output([T1.C1], [T1.C2]), filter(nil),
access([T1.C1], [T1.C2]), partitions(p0)
2 - output([T2.C1], [T2.C2]), filter(nil),
access([T2.C1], [T2.C2]), partitions(p0)
obclient>EXPLAIN SELECT /*+USE_HASH(t1, t2)*/ * FROM t1, t2 WHERE t1.c1 = t2.c1;
*************************** 1. row ***************************
Query Plan:
| ======================================
|ID|OPERATOR |NAME|EST. ROWS|COST |
--------------------------------------
|0 |HASH JOIN | |100001 |495180|
|1 | TABLE SCAN|T1 |100000 |61860 |
|2 | TABLE SCAN|T2 |100000 |61860 |
======================================
Outputs & filters:
-------------------------------------
0 - output([T1.C1], [T1.C2], [T2.C1], [T2.C2]), filter(nil),
equal_conds([T1.C1 = T2.C1]), other_conds(nil)
1 - output([T1.C1], [T1.C2]), filter(nil),
access([T1.C1], [T1.C2]), partitions(p0)
2 - output([T2.C1], [T2.C2]), filter(nil),
access([T2.C1], [T2.C2]), partitions(p0)
~~~
- 前言
- 1.說明
- 2.文檔更新說明
- docker
- 01.docker安裝
- 02.docker加速器
- 03.docker基本使用
- 04.docker 鏡像與容器
- 05.Dockerfile
- 06.docker阿里鏡像倉庫
- 07.docker私有鏡像倉庫harbor
- 08.docker網絡
- 09.docker項目實戰01
- 10.docker項目實戰02
- 11.docker componse
- 12.docker-compose常用命令
- 13.docker compose 案例
- 14.docker swarm集群
- 15.docker swarm常用命令
- 16.docker swarm 案例
- 17.volume
- 18.network
- 19.idea中部署項目到docker
- 20.docker目錄方式掛載sqlite
- 21.docker常用命令補充
- 22.nginx容器代理靜態文件403解決
- 23.docker集群管理平臺
- k8s
- 01.Kubernetes介紹
- 02.K8s基本概念
- 03.K8s架構圖
- 04.Minikube單節點環境搭建
- 05.kubeadm集群安裝1.14.0
- 06.虛擬機靜態網絡配置
- 07.kubeadm高可用集群安裝1.14.0
- 08 高可用VIP配置(keepalived+haproxy)
- 09.高可用免密登錄
- 10.kubeadm init流程
- 11.k8s體驗
- 12.網絡插件
- 13.Ingress
- 14.Ingress分類
- 15.Dashboard
- 16.存儲
- 01.Volumes
- 02.nfs
- 03.PV PVC
- 04.StorageClass
- 17.基礎組件
- 01.Pod
- 02.Service
- 03.ReplicaSet(RS)
- 04.Deployment
- 06.Namespace
- 02.DaemonSet
- 03.StatefulSet
- 04.ReplicationController(RC)
- 06.Job
- 09.PetSet
- 10.StatefulSets
- 11.Federation
- 12.Secret
- 05.Resources
- 13.UserAccount/ServiceAccount
- 14.RBAC
- 18.核心組件
- Master組件
- 01.kube-apiserver
- 02.etcd
- 03.kube-controller-manager
- 04.cloud-controller-manager
- 05.kube-scheduler
- 06.DNS
- Node組件
- 01.kubelet
- 02.kube-proxy
- 03.docker
- 04.RKT
- 05.supervisord
- 06.fluentd
- kubectl
- 19.K8S服務更新部署
- 20.CI/CD
- 01.java安裝
- 02.maven安裝
- 03.gitlab安裝
- 04.git安裝
- 05.jenkins安裝
- 06.k8s集群
- 07.DockerHub
- 08.實戰
- 21.日志
- 01.不同組件日志
- 02.LogPilot+ES+Kibana
- 22.監控
- 23.k8s部署ocp項目[mysql]
- 01.ocp介紹
- 02.環境準備
- 03.鏡像準備
- 04.部署說明
- 05.eureka-server
- 06.mysql
- 07.redis
- 08.auth-server
- 09.user-center
- 10.new-api-gateway
- 11.back-center
- 飛致云kubeoperator
- 01.kubeoperator介紹
- 02.kubeoperator安裝
- 飛致云DataEase
- 項目介紹
- 系統架構
- 安裝部署
- 在線安裝
- 離線安裝
- 用戶手冊
- 通用功能
- 數據源
- 數據集
- 視圖
- 儀表板
- 系統管理
- 用戶管理
- 飛致云JumpServer
- TIDB
- 網絡
- 交換機
- ISO/OSI協議模型詳解
- 交換CCNP
- RSTP快速生成樹協議
- MST多生成樹協議
- 以太網信道【應用廣泛】
- 廣播和多播抑制
- 多層交換
- ARP地址解析協議抑制
- VLAN間路由
- 熱備份路由協議HSRP【思科私有】
- 虛擬路由器冗余協議VRRP
- linux
- 01.時間同步
- linux時間不能同步
- Linux掛載磁盤
- 安裝ftp
- linux環境ftp賬號
- HTTP狀態碼
- 寶塔
- Centos安裝vsftp
- nginx ssl 配置
- datax
- 1.geom類型遷移擴展
- python安裝
- 消息中間件
- 1.RocketMQ
- 1.RocketMQ單機環境安裝
- 前端
- node踩坑之npm
- 數據庫
- Mysql安裝
- ClickHouse
- OceanBase數據庫
- OceanBase介紹
- OceanBase數據庫整體架構
- 快速入門
- 資源準備
- 安裝 OBD部署 OceanBase 數據庫
- 基本操作
- 數據庫操作
- 表操作
- 索引操作
- 插入數據
- 刪除數據
- 更新數據
- 提交事務
- 回滾事務
- 安裝部署
- 使用 RPM 包安裝 OceanBase 數據庫
- 使用源碼構建 OceanBase 數據庫
- 設置無密碼 SSH 登錄
- 配置時鐘源
- 數據分布
- 集群管理
- 租戶與資源管理
- 數據分布1
- 數據副本與服務
- 數據均衡
- 數據模型
- 多租戶架構
- 系統租戶
- 普通租戶
- 表格和表組
- 二級索引
- 無主鍵表
- 視圖
- 高可用
- 高可用方案
- 部署模式
- redo 日志管理控制
- 事務管理
- 隔離級別
- 并發控制
- 全局時間戳服務
- 本地事務
- 分布式事務
- 分布式查詢
- 存儲架構
- LSM Tree 架構
- 內存表 MemTable
- 塊存儲 SSTable
- 轉儲和合并
- 緩存機制
- 讀寫流程
- DDL
- SQL 引擎
- SQL 請求執行流程
- 查詢改寫
- 基于規則的查詢改寫
- 基于代價的查詢改寫
- 查詢優化
- 訪問路徑
- 基于規則的路徑選擇
- 基于代價的路徑選擇
- 聯接算法
- 聯接算法
- 聯接順序
- SQL 執行計劃
- 執行計劃算子
- TABLE SCAN
- TABLE LOOKUP
- JOIN
- COUNT
- GROUP BY
- WINDOW FUNCTION
- SUBPLAN FILTER
- DISTINCT
- SEQUENCE
- MATERIAL
- SORT
- LIMIT
- FOR UPDATE
- SELECT INTO
- SUBPLAN SCAN
- UNION
- INTERSECT
- EXCEPT/MINUS
- INSERT
- DELETE
- UPDATE
- MERGE
- EXCHANGE
- GI
- 執行計劃緩存
- 快速參數化
- 實時執行計劃展示
- 分布式執行計劃
- 分布式執行和并行查詢
- 分布式計劃的生成
- 分布式執行計劃調度
- 分布式執行計劃管理
- 并行查詢的執行
- 并行查詢的參數調優
- 備份與恢復
- 備份架構
- 恢復架構
- Backup Set
- Archive Log Round
- 管理員指南
- 數據庫基礎組件介紹
- 數據庫管理工具介紹
- OceanBase 客戶端
- MySQL 客戶端
- 數據庫基礎管理
- OceanBase 集群管理
- 集群參數管理
- 查詢集群參數
- 修改集群參數
- Zone 管理
- 增加或刪除 Zone
- 啟動或停止 Zone
- 修改 Zone
- OBServer 管理
- 查看 OBServer 狀態
- 停止 OBServer
- 啟動 OBServer
- 管理 OBServer 節點狀態
- 資源管理
- 創建資源單元
- 查看資源單元
- 修改資源單元
- 刪除資源單元
- 創建資源池
- 查看資源配置
- 修改資源池
- 刪除資源池
- 租戶管理
- 創建用戶租戶
- 新建租戶
- 查看租戶
- 修改租戶
- 刪除租戶
- 查看租戶會話
- 終止租戶會話
- 租戶管理變量
- 內存管理
- OceanBase 內存結構
- OceanBase 數據庫內存上限
- 系統內部內存管理
- 租戶內部內存管理
- 執行計劃緩存
- 常見內存問題
- 數據庫對象管理
- 管理表
- 關于表
- 創建表
- 定義自增列
- 定義列的約束類型
- 查看表的定義
- 更改表
- 清空表
- 刪除表
- 管理表組
- 關于表組
- 表組管理命令
- 管理索引
- 關于索引
- 創建索引
- 查看索引
- 刪除索引
- 視圖和同義詞管理
- 管理視圖
- 管理同義詞
- 數據分布和鏈路管理
- 分區表和分區索引管理
- 關于分區
- 分區策略
- 創建分區表
- 一級分區表
- 二級分區表
- 維護分區表
- 一級分區表
- 二級分區表
- 分區裁剪
- 分區命名與查詢
- 在分區表上建立索引
- 局部索引
- 全局索引
- 使用索引
- 副本管理
- 表級副本的使用
- Locality 管理
- 修改租戶的 Locality
- 事務管理
- 提交事務
- 回滾事務
- 事務隔離級別
- 用戶權限管理
- 創建用戶
- 修改用戶權限
- 查看白名單
- 鎖定和解鎖用戶
- 刪除用戶
- 數據高可用
- 回收站管理
- 回收站支持的對象
- 數據庫、表和索引級回收站
- 租戶級回收站
- 物理備份與恢復管理
- 部署 NFS
- 備份數據
- 通過命令行備份
- 查看備份進度
- 停止備份
- 刪除過期的備份
- 清理備份數據
- 取消清理備份數據
- 恢復數據
- 執行恢復
- 查看恢復進度和結果
- 備份維護
- 開發者指南
- 關于OceanBase數據庫
- OceanBase 集群簡介
- OceanBase 租戶簡介
- MySQL 租戶數據庫對象
- MySQL 客戶端
- OceanBase 客戶端(obclient)
- 關于結構化查詢語言
- Java 數據庫連接驅動(JDBC)
- 連接OceanBase數據庫
- 通過 MySQL 客戶端連接 OceanBase 租戶
- 通過 obclient 連接 OceanBase 租戶
- 創建 OceanBase 示例數據庫 TPCC
- 通過 obclient 探索 OceanBase MySQL 租戶
- 查詢表數據
- 關于查詢語句
- 查詢表里符合特定搜索條件的數據
- 對查詢的結果進行排序
- 從多個表里查詢數據
- 在查詢中使用操作符和函數
- 查看查詢執行計劃
- 在查詢中使用 SQL Hint
- 關于查詢超時設計
- 關于 DML 語句和事務
- 關于 DML 語句
- 關于 INSERT 語句
- 關于 UPDATE 語句
- 關于 DELETE 語句
- 關于 REPLACE INTO 語句
- 關于事務控制語句
- 提交事務
- 回滾事務
- 事務保存點
- 關于事務超時
- 創建和管理數據庫對象
- 關于 DDL 語句
- 創建數據庫
- 創建和管理表
- 關于 SQL 數據類型
- 創建表
- 關于自增列
- 關于列的約束類型
- 關于表的索引
- 閃回被刪除的表
- 創建和管理分區表
- 分區路由
- 分區策略
- 分區表的索引
- 分區表使用建議
- 創建和管理表組
- 關于表組
- 創建表時指定表組
- 查看表組信息
- 向表組中增加表
- 刪除表組
- 創建和管理視圖
- 創建視圖
- 修改視圖
- 刪除視圖
- 向 OceanBase 遷移數據
- DataX
- 不同數據源的 DataX 讀寫插件示例
- OceanBase 數據加載技術
- 附錄
- OceanBase 常用參數和變量
- OceanBase 常用 SQL
- SQL參考
- 基本元素
- 運算符
- 函數
- 函數
- 聚集函數
- 分析函數
- 信息函數
- 其它函數
- 查詢和子查詢
- 連接
- 集合
- SQL語句
- 通用語法
- ALTER DATABASE
- ALTER OUTLINE
- ALTER RESOURCE POOL
- ALTER RESOURCE UNIT
- ALTER SYSTEM
- ALTER TABLE
- ALTER TABLEGROUP
- ALTER TENANT
- ALTER USER
- CREATE DATABASE
- CREATE INDEX
- CREATE OUTLINE
- CREATE RESOURCE POOL
- CREATE RESOURCE UNIT
- CREATE RESTORE POINT
- CREATE SYNONYM
- CREATE TABLE
- CREATE TABLEGROUP
- CREATE TENANT
- CREATE USER
- CREATE VIEW
- DELETE
- DROP DATABASE
- DROP INDEX
- DROP OUTLINE
- DROP RESOURCE POOL
- DROP RESOURCE UNIT
- DROP RESTORE POINT
- DROP TABLE
- DROP TABLEGROUP
- DROP TENANT
- DROP SYNONYM
- DROP USER
- DROP VIEW
- EXPLAIN
- FLASHBACK DATABASE
- FLASHBACK TABLE
- FLASHBACK TENANT
- GRANT
- INSERT
- KILL
- PURGE DATABASE
- PURGE INDEX
- PURGE RECYCLEBIN
- PURGE TABLE
- PURGE TENANT
- RENAME TABLE
- RENAME USER
- REPLACE
- REVOKE
- SAVEPOINT
- SCHEMA
- SELECT
- SESSION
- SET PASSWORD
- SHOW GRANTS
- SHOW RECYCLEBIN
- TRANSACTION
- TRUNCATE TABLE
- UPDATE
- SQL調優指南
- SQL請求執行流程
- SQL 執行計劃
- SQL 執行計劃簡介
- 執行計劃算子
- TABLE SCAN
- TABLE LOOKUP
- JOIN
- COUNT
- GROUP BY
- WINDOW FUNCTION
- SUBPLAN FILTER
- DISTINCT
- SEQUENCE
- MATERIAL
- SORT
- LIMIT
- FOR UPDATE
- SELECT INTO
- SUBPLAN SCAN
- UNION
- INTERSECT
- EXCEPT/MINUS
- INSERT
- DELETE
- UPDATE
- MERGE
- EXCHANGE
- GI
- 執行計劃緩存
- 快速參數化
- 實時執行計劃展示
- 分布式執行計劃
- 分布式執行和并行查詢
- 分布式計劃的生成
- 分布式執行計劃調度
- 分布式執行計劃管理
- 并行查詢的執行
- 并行查詢的參數調優
- 參考指南
- 系統視圖
- 概述
- 字典視圖
- mysql.help_topic
- mysql.help_category
- mysql.help_keyword
- mysql.help_relation
- mysql.db
- mysql.proc
- mysql.time_zone
- mysql.time_zone_name
- mysql.time_zone_transition
- mysql.time_zone_transition_type
- mysql.user
- information_schema.CHARACTER_SETS
- information_schema.COLLATIONS
- information_schema.COLLATION_CHARACTER_SET_APPLICABILITY
- information_schema.COLUMNS
- information_schema.DBA_OUTLINES
- information_schema.ENGINES
- information_schema.GLOBAL_STATUS
- information_schema.GLOBAL_VARIABLES
- information_schema.KEY_COLUMN_USAGE
- information_schema.PARAMETERS
- information_schema.PARTITIONS
- information_schema.PROCESSLIST
- information_schema.REFERENTIAL_CONSTRAINTS
- information_schema.ROUTINES
- information_schema.SCHEMATA
- information_schema.SCHEMA_PRIVILEGES
- information_schema.SESSION_STATUS
- information_schema.SESSION_VARIABLES
- information_schema.STATISTICS
- information_schema.TABLES
- information_schema.TABLE_CONSTRAINTS
- information_schema.TABLE_PRIVILEGES
- information_schema.USER_PRIVILEGES
- information_schema.USER_RECYCLEBIN
- information_schema.VIEWS
- oceanbase.CDB_OB_BACKUP_ARCHIVELOG_SUMMARY
- oceanbase.CDB_OB_BACKUP_JOB_DETAILS
- oceanbase.CDB_OB_BACKUP_SET_DETAILS
- oceanbase.CDB_OB_BACKUP_PROGRESS
- oceanbase.CDB_OB_BACKUP_SET_EXPIRED
- oceanbase.CDB_OB_BACKUP_ARCHIVELOG_PROGRESS
- oceanbase.CDB_OB_BACKUP_CLEAN_HISTORY
- oceanbase.CDB_OB_BACKUP_TASK_CLEAN_HISTORY
- oceanbase.CDB_OB_RESTORE_PROGRESS
- oceanbase.CDB_OB_RESTORE_HISTORY
- oceanbase.CDB_CKPT_HISTORY
- oceanbase.CDB_OB_BACKUP_VALIDATION_JOB
- oceanbase.CDB_OB_BACKUP_VALIDATION_JOB_HISTORY
- oceanbase.CDB_OB_TENANT_BACKUP_VALIDATION_TASK
- oceanbase.CDB_OB_BACKUP_VALIDATION_TASK_HISTORY
- oceanbase.CDB_OB_BACKUP_BACKUP_ARCHIVELOG_SUMMARY
- oceanbase.CDB_OB_BACKUP_BACKUPSET_TASK_HISTORY
- oceanbase.CDB_OB_BACKUP_BACKUPSET_TASK
- oceanbase.CDB_OB_BACKUP_BACKUPSET_JOB_HISTORY
- oceanbase.CDB_OB_BACKUP_BACKUPSET_JOB
- oceanbase.CDB_OB_BACKUP_SET_OBSOLETE
- 性能視圖
- gv$plan_cache_stat
- gv$plan_cache_plan_stat
- gv$session_event
- gv$session_wait
- gv$session_wait_history
- gv$system_event
- gv$sesstat
- gv$sysstat
- gv$sql_audit
- gv$latch
- gv$memory
- gv$memstore
- gv$memstore_info
- gv$plan_cache_plan_explain
- gv$obrpc_outgoing
- gv$obrpc_incoming
- gv$sql
- gv$sql_plan_monitor
- gv$outline
- gv$concurrent_limit_sql
- gv$sql_plan_statistics
- gv$server_memstore
- gv$unit_load_balance_event_history
- gv$tenant
- gv$database
- gv$table
- gv$unit
- gv$partition
- gv$lock_wait_stat
- gv$session_longops
- gv$tenant_memstore_allocator_info
- gv$minor_merge_info
- gv$tenant_px_worker_stat
- gv$partition_audit
- gv$ps_stat
- gv$ps_item_info
- gv$sql_workarea
- gv$sql_workarea_histogram
- gv$ob_sql_workarea_memory_info
- gv$server_schema_info
- gv$merge_info
- gv$lock
- gv$sstable
- gv$ob_trans_table_status
- v$statname
- v$event_name
- v$session_event
- v$session_wait
- v$session_wait_history
- v$sesstat
- v$sysstat
- v$system_event
- v$memory
- v$memstore
- v$memstore_info
- v$plan_cache_stat
- v$plan_cache_plan_stat
- v$plan_cache_plan_explain
- v$sql_audit
- v$obrpc_outgoing
- v$obrpc_incoming
- v$sql
- v$sql_monitor
- v$sql_plan_monitor
- v$sql_plan_statistics
- v$unit
- v$partition
- v$lock_wait_stat
- v$session_longops
- v$latch
- v$tenant_memstore_allocator_info
- v$tenant_px_worker_stat
- v$partition_audit
- v$ob_cluster
- v$ob_standby_status
- v$ob_cluster_stats
- v$ob_cluster_event_history
- v$ps_stat
- v$ps_item_info
- v$sql_workarea
- v$sql_workarea_active
- v$sql_workarea_histogram
- v$ob_sql_workarea_memory_info
- v$ob_timestamp_service
- v$server_schema_info
- v$merge_info
- v$lock
- v$sql_monitor_statname
- v$restore_point
- v$ob_cluster_failover_info
- v$encrypted_tables
- v$encrypted_tablespaces
- v$sstable
- v$ob_trans_table_status
- 系統變量
- 系統變量概述
- auto_increment_increment
- auto_increment_offset
- autocommit
- character_set_client
- character_set_connection
- character_set_database
- character_set_results
- character_set_server
- character_set_system
- collation_connection
- collation_database
- collation_server
- interactive_timeout
- last_insert_id
- max_allowed_packet
- sql_mode
- time_zone
- tx_isolation
- version_comment
- wait_timeout
- binlog_row_image
- character_set_filesystem
- connect_timeout
- datadir
- debug_sync
- div_precision_increment
- explicit_defaults_for_timestamp
- group_concat_max_len
- identity
- lower_case_table_names
- net_read_timeout
- net_write_timeout
- read_only
- sql_auto_is_null
- sql_select_limit
- timestamp
- tx_read_only
- version
- sql_warnings
- max_user_connections
- init_connect
- license
- net_buffer_length
- system_time_zone
- query_cache_size
- query_cache_type
- sql_quote_show_create
- max_sp_recursion_depth
- sql_safe_updates
- ob_proxy_partition_hit
- ob_log_level
- ob_max_parallel_degree
- ob_query_timeout
- ob_read_consistency
- ob_enable_transformation
- ob_trx_timeout
- ob_enable_plan_cache
- ob_enable_index_direct_select
- ob_proxy_set_trx_executed
- ob_enable_aggregation_pushdown
- ob_last_schema_version
- ob_global_debug_sync
- ob_proxy_global_variables_version
- ob_enable_trace_log
- ob_enable_hash_group_by
- ob_enable_blk_nestedloop_join
- ob_bnl_join_cache_size
- ob_org_cluster_id
- ob_plan_cache_percentage
- ob_plan_cache_evict_high_percentage
- ob_plan_cache_evict_low_percentage
- recyclebin
- ob_capability_flag
- ob_stmt_parallel_degree
- is_result_accurate
- error_on_overlap_time
- ob_compatibility_mode
- ob_create_table_strict_mode
- ob_sql_work_area_percentage
- ob_route_policy
- ob_enable_transmission_checksum
- foreign_key_checks
- ob_enable_truncate_flashback
- ob_tcp_invited_nodes
- sql_throttle_current_priority
- sql_throttle_priority
- sql_throttle_rt
- sql_throttle_network
- auto_increment_cache_size
- ob_enable_jit
- ob_timestamp_service
- plugin_dir
- undo_retention
- ob_sql_audit_percentage
- ob_enable_sql_audit
- optimizer_use_sql_plan_baselines
- optimizer_capture_sql_plan_baselines
- parallel_max_servers
- parallel_servers_target
- ob_trx_idle_timeout
- block_encryption_mode
- ob_reserved_meta_memory_percentage
- ob_check_sys_variable
- tracefile_identifier
- transaction_isolation
- ob_trx_lock_timeout
- validate_password_check_user_name
- validate_password_length
- validate_password_mixed_case_count
- validate_password_number_count
- validate_password_policy
- validate_password_special_char_count
- default_password_lifetime
- ob_trace_info
- secure_file_priv
- ob_pl_block_timeout
- performance_schema
- transaction_read_only
- resource_manager_plan
- 系統配置項
- 系統配置項概述
- auto_leader_switch_interval
- auto_delete_expired_backup
- autoinc_cache_refresh_interval
- audit_sys_operations
- audit_trail
- balancer_idle_time
- balancer_log_interval
- balancer_timeout_check_interval
- balancer_task_timeout
- balancer_tolerance_percentage
- balancer_emergency_percentage
- balance_blacklist_failure_threshold
- balance_blacklist_retry_interval
- backup_concurrency
- backup_dest
- backup_net_limit
- backup_recovery_window
- backup_region
- builtin_db_data_verify_cycle
- bf_cache_miss_count_threshold
- bf_cache_priority
- cache_wash_threshold
- clog_cache_priority
- clog_sync_time_warn_threshold
- clog_disk_usage_limit_percentage
- clog_transport_compress_all
- clog_transport_compress_func
- clog_persistence_compress_func
- clog_max_unconfirmed_log_count
- cluster
- cluster_id
- cpu_count
- cpu_quota_concurrency
- cpu_reserved
- config_additional_dir
- data_copy_concurrency
- data_dir
- datafile_disk_percentage
- dtl_buffer_size
- datafile_size
- debug_sync_timeout
- default_compress_func
- default_compress
- default_progressive_merge_num
- default_row_format
- devname
- data_disk_usage_limit_percentage
- disk_io_thread_count
- dead_socket_detection_timeout
- enable_clog_persistence_compress
- election_cpu_quota
- enable_one_phase_commit
- enable_sys_unit_standalone
- enable_pg
- enable_smooth_leader_switch
- election_blacklist_interval
- enable_election_group
- enable_auto_leader_switch
- enable_global_freeze_trigger
- enable_manual_merge
- enable_merge_by_turn
- enable_perf_event
- enable_rebalance
- enable_record_trace_log
- enable_record_trace_id
- enable_early_lock_release
- enable_rereplication
- enable_rich_error_msg
- enable_rootservice_standalone
- enable_sql_audit
- enable_sql_operator_dump
- enable_async_syslog
- enable_syslog_recycle
- enable_syslog_wf
- enable_upgrade_mode
- enable_separate_sys_clog
- enable_ddl
- enable_major_freeze
- enable_rebuild_on_purpose
- enable_log_archive
- enable_monotonic_weak_read
- external_kms_info
- freeze_trigger_percentage
- flush_log_at_trx_commit
- fuse_row_cache_priority
- force_refresh_location_cache_interval
- force_refresh_location_cache_threshold
- get_leader_candidate_rpc_timeout
- global_major_freeze_residual_memory
- global_write_halt_residual_memory
- ignore_replay_checksum_error
- global_index_build_single_replica_timeout
- high_priority_net_thread_count
- ignore_replica_checksum_error
- ignore_replay_checksum_error
- index_cache_priority
- index_clog_cache_priority
- index_info_block_cache_priority
- internal_sql_execute_timeout
- large_query_worker_percentage
- large_query_threshold
- leak_mod_to_check
- lease_time
- location_cache_cpu_quota
- location_cache_expire_time
- location_cache_priority
- location_cache_refresh_min_interval
- location_fetch_concurrency
- location_refresh_thread_count
- log_archive_checkpoint_interval
- log_archive_concurrency
- log_restore_concurrency
- major_freeze_duty_time
- max_kept_major_version_number
- max_string_print_length
- max_syslog_file_count
- merge_stat_sampling_ratio
- major_compact_trigger
- memory_chunk_cache_size
- memory_limit
- memory_limit_percentage
- memory_reserved
- merge_thread_count
- merger_check_interval
- merger_completion_percentage
- merger_switch_leader_duration_time
- merger_warm_up_duration_time
- max_px_worker_count
- migration_disable_time
- min_observer_version
- minor_deferred_gc_time
- minor_freeze_times
- minor_warm_up_duration_time
- mysql_port
- minor_merge_concurrency
- multiblock_read_gap_size
- multiblock_read_size
- micro_block_merge_verify_level
- migrate_concurrency
- minor_compact_trigger
- memstore_limit_percentage
- net_thread_count
- obconfig_url
- ob_enable_batched_multi_statement
- partition_table_check_interval
- partition_table_scan_batch_count
- plan_cache_evict_interval
- px_task_size
- px_workers_per_cpu_quota
- replica_safe_remove_time
- resource_hard_limit
- resource_soft_limit
- rootservice_async_task_queue_size
- rootservice_async_task_thread_count
- rootservice_list
- rootservice_ready_check_interval
- row_compaction_update_limit
- row_purge_thread_count
- rpc_port
- rpc_timeout
- restore_concurrency
- rootservice_memory_limit
- rebuild_replica_data_lag_threshold
- schema_history_expire_time
- ssl_client_authentication
- server_check_interval
- server_data_copy_in_concurrency
- server_data_copy_out_concurrency
- server_permanent_offline_time
- stack_size
- server_balance_critical_disk_waterlevel
- server_balance_disk_tolerance_percent
- system_memory
- server_balance_cpu_mem_tolerance_percent
- server_cpu_quota_max
- server_cpu_quota_min
- sql_audit_memory_limit
- sys_bkgd_io_high_percentage
- sys_bkgd_io_low_percentage
- sys_bkgd_io_timeout
- sys_bkgd_net_percentage
- sys_bkgd_migration_change_member_list_timeout
- sys_bkgd_migration_retry_num
- syslog_level
- switchover_process_thread_count
- system_cpu_quota
- sys_cpu_limit_trigger
- syslog_io_bandwidth_limit
- tablet_size
- tableapi_transport_compress_func
- tenant_task_queue_size
- tenant_groups
- trace_log_slow_query_watermark
- trace_log_sampling_interval
- trx_2pc_retry_interval
- trx_force_kill_threshold
- tde_method
- token_reserved_percentage
- unit_balance_resource_weight
- user_block_cache_priority
- user_row_cache_priority
- user_tab_col_stat_cache_priority
- user_iort_up_percentage
- use_large_pages
- virtual_table_location_cache_expire_time
- workers_per_cpu_quota
- wait_leader_batch_count
- writing_throttling_maximum_duration
- writing_throttling_trigger_percentage
- weak_read_version_refresh_interval
- workarea_size_policy
- zone
- zone_merge_concurrency
- zone_merge_order
- zone_merge_timeout
- ob_ssl_invited_common_names
- ssl_external_kms_info
- ob_event_history_recycle_interval
- backup_log_archive_checkpoint_interval
- plsql_ccflags
- plsql_code_type
- plsql_debug
- plsql_optimize_level
- plsql_v2_compatibility
- plsql_warnings
- recyclebin_object_expire_time
- log_archive_batch_buffer_limit
- clog_disk_utilization_threshold
- backup_backup_archive_log_batch_count
- backup_backup_archivelog_retry_interval
- backup_backupset_batch_count
- backup_backupset_retry_interval
- open_cursors
- fast_recovery_concurrency
- 預留關鍵字
- 部署實踐
- 設置無密碼 SSH 登錄
- 單機安裝
- 本地安裝
- 分布式安裝
- 創建租戶
- OceanBaseDeploy(OBD)常用命令
- 大數據
- 數據倉庫分層
- 數據倉庫分層實踐
- hive安裝
- hive命令
- hadoop安裝
- jdk安裝
- 應龍inlong
- 網關
- apisix
- apisix2.7源碼安裝
- apisix rpm2.6安裝
- apisix-dashboard2.7 rpm安裝
- apisix-dashboard使用
- apisix-dashboard進階