1. 程式人生 > 程式設計 >TiDB 2.1.18 釋出,分散式 NewSQL 資料庫

TiDB 2.1.18 釋出,分散式 NewSQL 資料庫

TiDB 2.1.18 已經發布了,該版本更新內容如下:

TiDB

  • SQL 優化器
    • 修復 Feedback 切分查詢範圍出錯的問題 #12172
    • 修復點查中許可權檢查不正確的問題 #12341
    • 將 Limit 運算元下推到 IndexLookUpReader 執行邏輯中,優化 select ... limit ... offset ... 的執行效能 #12380
    • 支援在 ORDER BYGROUP BY 和 LIMIT OFFSET 中使用引數 #12514
    • 修復 partition 表上的 IndexJoin 返回錯誤結果的問題 #12713
    • 修復 TiDB 中 str_to_date
       函式在日期字串和格式化字串不匹配的情況下,返回結果與 MySQL 不一致的問題 #12757
    • 修復當查詢條件中包含 cast 函式時 outer join 被錯誤轉化為 inner join 的問題 #12791
    • 修復 AntiSemiJoin 的 join 條件中錯誤的表示式傳遞 #12800
  • SQL 執行引擎
    • 修復時間取整不正確的問題 (如 2019-09-11 11:17:47.999999666 應該被取整到 2019-09-11 11:17:48) #12259
    • 修復 PREPARE 語句型別沒有記錄在監控中的問題 #12329
    • 修復 FROM_UNIXTIME 在檢查 NULL 值時 panic 的錯誤 
      #12572
    • 修復 YEAR 型別資料插入非法年份時,結果為 NULL 而不是 0000 的相容性問題 #12744
    • 改進 AutoIncrement 列隱式分配時的行為,與 MySQL 自增鎖的預設模式 (“consecutive” lock mode) 保持一致:對於單行 Insert 語句的多個自增 AutoIncrement ID 的隱式分配,TiDB 保證分配值的連續性。該改進保證 JDBC getGeneratedKeys() 方法在任意場景下都能得到正確的結果。 #12619
    • 修復當 HashAgg 作為 Apply 子節點時查詢 hang 住的問題 #12769
    • 修復邏輯表示式 AND / OR 在涉及型別轉換時返回錯誤結果的問題 
      #12813
  • Server
    • 修復 KILL TIDB QUERY 語法對 SLEEP() 語句無效的問題 #12159
    • 修復 AUTO INCREMENT 分配 MAX int64 和 MAX uint64 沒有報錯的問題 #12210
    • 修復日誌級別設定為 ERROR 時,慢日誌不會被記錄的問題 #12373
    • 將快取 100 個 Schema 變更相關的表資訊調整成 1024 個,且支援通過 tidb_max_delta_schema_count 系統變數修改 #12515
    • 將 SQL 的統計方式開始時間由“開始執行”改為“開始編譯”,使得 SQL 效能統計更加準確 #12638
    • 在 TiDB 日誌中新增 set session autocommit 的記錄 #12568
    • 將 SQL 的開始時間記錄在 SessionVars 中,避免計劃執行時,該時間被重置 #12676
    • 在 Order By/Group By/Limit Offset 字句中支援 ? 佔位符 #12514
    • 慢日誌中新增 Prev_stmt 欄位,用於最後一條語句是 COMMIT 時輸出前一條語句 #12724
    • 當一個顯式提交的事務 COMMIT 時出錯,在日誌中記錄 COMMIT 前一條語句 #12747
    • 優化在 TiDB Server 執行 SQL 時,對前一條語句的儲存方式以提升效能 #12751
    • 修復 skip-grant-table=true 時,FLUSH PRIVILEGES 語句導致系統 Panic 的問題 #12816
    • 將 AutoID 的最小申請步長從 1000 增加為 30000,避免短時間大量寫入時頻繁請求 AutoID 造成效能瓶頸 #12891
    • 修復 Prepared 語句在 TiDB 發生 panic 時錯誤日誌中未打印出錯 SQL 的問題 #12954
    • 修復 COM_STMT_FETCH 慢日誌時間記錄和 MySQL 不一致問題 #12953
    • 當遇到寫衝突時,在報錯資訊中新增錯誤碼,以方便對衝突原因進行診斷 #12878
  • DDL
    • 為避免誤操作,TiDB 預設不再允許刪除列的 AUTO INCREMENT 屬性,當確實需要刪除時,請更改系統變數 tidb_allow_remove_auto_inc;相關檔案請見:TiDB 專用系統變數和語法 #12146
    • 支援 Create Table 語句中建唯一索引時帶多個 Unique #12469
    • 修復 CreateTable 語句中指定外來鍵約束時,外來鍵表在沒有指定 Database 時未能使用主表的 Database 導致報錯的問題 #12678
    • 修復 ADMIN CANCEL DDL JOBS 時報 invalid list index 錯的問題 #12681
  • Monitor
    • Backoff 監控新增型別,且補充之前沒有統計到的 Backoff,比如 commit 時遇到的 Backoff #12326
    • 新增統計 Add Index 操作進度的監控 #12389

PD

  • 修復 pd-ctl --help 命令輸出內容 #1772

Tools

  • TiDB Binlog
    • 修復 ALTER DATABASE 相關 DDL 會導致 Drainer 異常退出的問題 #770
    • 支援對 Commit binlog 查詢事務狀態資訊,提升同步效率 #761
    • 修復當 Drainer 的 start_ts 大於 Pump 中最大的 commit_ts 時候有可能引起 Pump panic 的問題 #759

TiDB Ansible

  • TiDB Binlog 增加 queue size 和 query histogram 監控項 #952
  • 更新 TiDB 告警表示式 #961
  • 新增配置檔案檢查功能,部署或者更新前會檢查配置是否合理 #973
  • TiDB 新增加索引速度監控項 #987
  • 更新 TiDB Binlog 監控 Dashboard,相容 4.6.3 版本的 Grafana #993

詳細資訊:

github.com/pingcap/tid…

pingcap.com/docs-cn/sta…