TiDB 特點:
- 支持 SQL 並提供兼容 MySQL 協議的客戶端接口,可以輕鬆地將現有的 MySQL 編寫的應用程序適配到 TiDB,並允許您使用通用的客戶端庫。 除了MySQL協議之外,您還可以使用基於JSON的API和Spark連接器來訪問DBMS。
- SQL 的功能包括索引、聚合函數、GROUP BY、ORDER BY、DISTINCT 表達式、合併(LEFT JOIN / RIGHT JOIN / CROSS JOIN)、視圖、窗口函數和子查詢。 提供的機會足以組織使用 TiDB 等 Web 應用程序(例如 PhpMyAdmin、
視護目鏡 和 WordPress; - 橫向擴展和彈性:只需添加新節點即可擴展存儲和處理能力。 數據分佈在具有冗餘的節點上,以便在單個節點發生故障時允許操作繼續進行。 故障會自動處理。
- 該系統保證了一致性,並且對於客戶端軟件來說看起來就像一個大型 DBMS,儘管實際上涉及來自許多節點的數據來完成事務。
- 節點上的物理數據存儲可以使用不同的後端,例如GoLevelDB和BoltDB本地存儲引擎或原生分佈式存儲引擎
鈦KV 和TiFlash。 TiKV 以鍵/值格式按行存儲數據,更適合事務處理(OLTP)任務。 TiFlash 以基於列的方式存儲數據,讓您在解決分析問題(OLAP)時獲得更高的性能。 - 異步更改存儲方案的能力,允許您動態添加列和索引,而無需停止正在進行的操作的處理。
在新版本中:
- 默認啟用分佈式垃圾收集器Green GC,可以顯著提高大型集群中垃圾收集的速度並提高穩定性;
- 添加了對大型事務的支持,其大小幾乎受物理內存大小的限制。 單筆交易大小限制從100MB提高到10GB;
- 添加了對 BACKUP 和 RESTORE 命令進行備份的支持;
- 添加了對錶設置鎖定的功能;
- 添加了讀級別(READ COMMITTED)兼容MySQL的事務隔離機制;
- “ADMIN SHOW DDL JOBS”命令添加了對 LIKE 和 WHERE 表達式的支持;
- 新增 oom-use-tmp-storage 參數,允許在 RAM 不足的情況下使用臨時文件緩存中間結果;
- 添加Random關鍵字,為屬性分配隨機值;
- LOAD DATA 命令現在能夠使用十六進制和二進製表達式;
- 添加了 15 個參數來控制優化器行為;
- 添加了用於診斷 SQL 查詢性能的工具。 添加了通過系統表 SLOW_QUERY / CLUSTER_SLOW_QUERY 可用的慢查詢日誌;
- 添加了對處理序列的函數的支持;
- 添加了動態更改從 PD(Placement Driver,集群管理服務器)讀取的配置參數的功能。 添加了使用“SET CONFIG”語句更改 PD/TiKV 節點設置的功能。
- 添加設置 max-server-connections 以限制服務器的最大同時連接數(默認為 4096);
- 在請求的列完全被索引覆蓋的情況下提高了性能;
- 增加了基於合併索引的查詢優化;
- 提高數值範圍內的操作性能;
- 通過緩存訪問索引的結果並過濾掉重複項來減少 CPU 負載;
- 添加了對新字符串存儲格式的支持,該格式允許您提高具有大量列的表的性能;
- GROUP_CONCAT 函數現在支持“ORDER BY”表達式;
- 新增通過SQL從TiFlash日誌中提取數據的功能;
- “RECOVER TABLE”命令實現了對恢復被截斷表的支持;
- 新增DDLJobs系統表,用於查詢DDL作業執行詳情;
- 新增使用 SHOW CONFIG 命令顯示 PD 和 TiKV 設置的功能;
-
包括 默認協處理器緩存; - 現在可以使用提交者並發設置來控制提交重試階段的 goroutine 數量;
- 新增顯示表分區區域的功能;
- tidb-server 新增限制臨時存儲大小的功能;
- 添加了對“插入 tbl_name 分區(partition_name_list)”和“替換到 tbl_name 分區(partition_name_list)”操作的支持;
- 用於分區(partitioning)的hash中,增加了基於“is null”進行過濾的支持;
- 對於分區表,添加了對檢查、清理和恢復索引的支持。
來源: opennet.ru