TIDB與MYSQL相容性測試

技術很渣發表於2020-09-25

1.建表插入匯入相容性
測試場景:
將專案的生產資料庫備份匯入到TIDB測試環境。
測試結果:
有少量建表語句不相容,建表語句需要調整,對於某些時間欄位,例如
updateTime timestamp NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新時間’
不相容。
匯入必須拆分SQL,提交的大小有限制,TIDB事務提交最大100M.匯入必須要用專業工具拆分式匯入,
匯入基本成功,匯入的時間跟MYSQL匯入時間大體一致3到4個小時。傳統的MYSQL命令匯入跟Navicat for MySQL工具匯入,遇到大表,都會失敗。
用傳統方法倒入TIDB事務提交的限制一定會遇到
我們此次用Mydumper匯入,資料匯入到TIDB基本成功。Mydumper是把SQL分割成100M以下的多個檔案進行順序倒入!
2.業務程式相容性

在這裡插入圖片描述
3.SQL效能測試
測試場景
MySQL 8.0 TIDB4.2
16核心32G記憶體虛擬機器centos7.3
1個例項 16核心32G記憶體虛擬機器centos7.3
1個例項

1.簡單SQL
結論:簡單SQL執行速度差不多,mysql略快

2.複雜關聯查詢
案例1:簡單資料關聯查詢 MYSQL快
案例2: 大資料關聯表查詢條件簡單 TIDB快
案例3: 大資料關聯查詢複雜條件 MYSQL快
案例4: 關聯子查詢,級聯更新子查詢 TIDB支援非常不好

3.事務對比
在這裡插入圖片描述
MYSQL悲觀鎖,TIDB樂觀鎖
4.測試初步結論:
TiDB較適合簡單查詢的OLTP系統:
得益於TiDB的分散式架構,併發上比mysql更優,在大表關聯查詢上有一定優勢,但是在複雜的子查詢語句表現不盡人意。
TIDB對於級聯更新語句支援非常不好。
TIDB特別適合電商專案資料量訂單龐大,統計不復雜的業務場景。
複雜統計分析的專案非常不合適,儲存過程,觸發器,自定義函式,完全都不能用。
本測試只代表個人觀點,真實的使用場景需要實際中驗證。

相關文章