TiDB tương thích cao với MySQL 5. 7 và các tính năng và cú pháp phổ biến của MySQL 5. 7. Các công cụ hệ sinh thái cho MySQL 5. 7 [PHPMyAdmin, Navicat, MySQL Workbench, mysqldump, và Mydumper/myloader] và ứng dụng khách MySQL có thể được sử dụng cho TiDB
Tuy nhiên, một số tính năng của MySQL không được hỗ trợ. Điều này có thể là do hiện tại có một cách tốt hơn để giải quyết vấn đề [chẳng hạn như các hàm XML được thay thế bởi JSON] hoặc thiếu nhu cầu hiện tại so với nỗ lực cần thiết [chẳng hạn như các thủ tục và hàm được lưu trữ]. Một số tính năng cũng có thể khó triển khai như một hệ thống phân tán
Ngoài ra, TiDB không hỗ trợ giao thức sao chép MySQL nhưng cung cấp các công cụ cụ thể để sao chép dữ liệu với MySQL
- Sao chép dữ liệu từ MySQL. TiDB Data Migration [DM] là công cụ hỗ trợ di chuyển toàn bộ dữ liệu và sao chép dữ liệu gia tăng từ MySQL/MariaDB sang TiDB
- Sao chép dữ liệu sang MySQL. TiCDC là một công cụ để sao chép dữ liệu gia tăng của TiDB bằng cách kéo nhật ký thay đổi TiKV. TiCDC sử dụng phần chìm MySQL để sao chép dữ liệu gia tăng của TiDB sang MySQL
tính năng không được hỗ trợ
- Các thủ tục và chức năng được lưu trữ
- Gây nên
- Sự kiện
- Hàm do người dùng định nghĩa
FOREIGN KEY
ràng buộc #18209- Cú pháp và chỉ mục của
FULLTEXT
#1793 - Các hàm, kiểu dữ liệu và chỉ mục của
SPATIAL
[còn được gọi làGIS
/_______5] #6347 - Các bộ ký tự khác ngoài
ascii
,latin1
,binary
,utf8
,FOREIGN KEY
0 vàFOREIGN KEY
1 - lược đồ SYS
- dấu vết trình tối ưu hóa
- Hàm XML
- Giao thức X #1109
- Đặc quyền cấp cột #9766
- Cú pháp
FOREIGN KEY
2 [TiDB sử dụng cam kết hai pha trong nội bộ, nhưng điều này không được hiển thị qua giao diện SQL] - Cú pháp
FOREIGN KEY
3 #4754 - Cú pháp
FOREIGN KEY
4 #4673 - Cú pháp
FOREIGN KEY
5 #1895 - cú pháp
FOREIGN KEY
6 - cú pháp
FOREIGN KEY
7 - tuyên bố
FOREIGN KEY
8 - tuyên bố
FOREIGN KEY
9 - "Trình theo dõi phiên. Thêm ngữ cảnh GTID vào gói OK"
Các tính năng khác với MySQL
ID tăng tự động
Trong TiDB, các giá trị [ID] của cột tự động gia tăng là duy nhất trên toàn cầu. Chúng được gia tăng trên một máy chủ TiDB duy nhất. Nếu bạn muốn ID tăng dần giữa nhiều máy chủ TiDB, bạn có thể sử dụng chế độ tương thích MySQL
FULLTEXT
0. Nhưng ID không nhất thiết phải được phân bổ tuần tự. Bạn không nên trộn lẫn giá trị mặc định và giá trị tùy chỉnh. Nếu không, bạn có thể gặp thông báo lỗiFULLTEXT
1Bạn có thể sử dụng biến hệ thống
FULLTEXT
2 để cho phép hoặc cấm loại bỏ thuộc tính cộtFULLTEXT
0. Cú pháp xóa thuộc tính cột làFULLTEXT
4 hoặcFULLTEXT
5TiDB không hỗ trợ thêm thuộc tính cột
FULLTEXT
0 và không thể khôi phục thuộc tính này sau khi đã xóaXem
FULLTEXT
0 để biết thêm chi tiết
- Nếu bạn chưa chỉ định khóa chính khi tạo bảng, TiDB sẽ sử dụng
FULLTEXT
8 để xác định hàng. Việc phân bổ giá trị này chia sẻ một trình phân bổ với cột tăng tự động [nếu cột đó tồn tại]. Nếu bạn chỉ định một cột tăng tự động làm khóa chính, TiDB sẽ sử dụng cột này để xác định hàng. Trong tình huống này, tình huống sau đây có thể xảy ra
mysql> CREATE TABLE t[id INT UNIQUE KEY AUTO_INCREMENT];
Query OK, 0 rows affected [0.05 sec]
mysql> INSERT INTO t VALUES[],[],[];
Query OK, 3 rows affected [0.00 sec]
Records: 3 Duplicates: 0 Warnings: 0
mysql> SELECT _tidb_rowid, id FROM t;
+-------------+------+
| _tidb_rowid | id |
+-------------+------+
| 4 | 1 |
| 5 | 2 |
| 6 | 3 |
+-------------+------+
3 rows in set [0.01 sec]
giản đồ hiệu suất
TiDB sử dụng kết hợp Prometheus và Grafana để lưu trữ và truy vấn các số liệu giám sát hiệu suất. Các bảng lược đồ hiệu suất trả về kết quả trống trong TiDB
Để kiểm tra số liệu hiệu suất trong TiDB Cloud, bạn có thể kiểm tra trang tổng quan về cụm trên bảng điều khiển TiDB Cloud hoặc sử dụng tích hợp giám sát của bên thứ ba. Các bảng lược đồ hiệu suất trả về kết quả trống trong TiDB
Kế hoạch thực hiện truy vấn
Định dạng đầu ra, nội dung đầu ra và cài đặt đặc quyền của Kế hoạch thực hiện truy vấn [FULLTEXT
9/SPATIAL
0] trong TiDB khác rất nhiều so với trong MySQL
Biến hệ thống MySQL SPATIAL
1 chỉ đọc trong TiDB và không ảnh hưởng đến kế hoạch truy vấn. Bạn cũng có thể sử dụng các gợi ý của trình tối ưu hóa theo cú pháp tương tự như MySQL, nhưng các gợi ý có sẵn và cách triển khai có thể khác
Xem Hiểu kế hoạch thực hiện truy vấn để biết thêm chi tiết
Chức năng tích hợp sẵn
TiDB hỗ trợ hầu hết các chức năng có sẵn của MySQL, nhưng không phải tất cả. Câu lệnh SPATIAL
2 cung cấp một danh sách các chức năng có sẵn
Xem thêm. Ngữ pháp TiDB SQL
DDL
Trong TiDB, tất cả các thay đổi DDL được hỗ trợ đều được thực hiện trực tuyến. So với các thao tác DDL trong MySQL, các thao tác DDL trong TiDB có các hạn chế chính sau
Khi bạn sử dụng một câu lệnh
SPATIAL
3 để thay đổi nhiều đối tượng lược đồ [chẳng hạn như cột hoặc chỉ mục] của một bảng, việc chỉ định cùng một đối tượng trong nhiều thay đổi không được hỗ trợ. Ví dụ: nếu bạn thực hiện lệnhSPATIAL
4, thì xuất ra lỗiSPATIAL
5Nó không được hỗ trợ để sửa đổi nhiều đối tượng lược đồ dành riêng cho TiDB bằng cách sử dụng một câu lệnh
SPATIAL
3 duy nhất, chẳng hạn nhưSPATIAL
7,SPATIAL
8 vàSPATIAL
9SPATIAL
3 trong TiDB không hỗ trợ thay đổi một số kiểu dữ liệu. Ví dụ: TiDB không hỗ trợ thay đổi từ loạiGIS
1 sang loạiGIS
2. Nếu thay đổi kiểu dữ liệu không được hỗ trợ, TiDB báo cáo lỗiGIS
3. Tham khảoSPATIAL
3 để biết thêm chi tiếtCú pháp
GIS
5 chỉ hoạt động như một xác nhận trong TiDB và không sửa đổi thuật toánGIS
6. XemSPATIAL
3 để biết thêm chi tiếtKhông hỗ trợ thêm/xóa khóa chính của loại
GIS
8. Để biết thêm chi tiết về khóa chính của loạiGIS
8, hãy tham khảo chỉ mục cụmCác loại chỉ mục khác nhau [_______50] không được hỗ trợ và sẽ được phân tích cú pháp và bỏ qua khi được chỉ định
Phân vùng bảng hỗ trợ các loại phân vùng
GEOMETRY
1,GEOMETRY
2 vàGEOMETRY
3. Đối với loại phân vùng không được hỗ trợ, có thể xuất ra lỗiGEOMETRY
4, trong đóGEOMETRY
5 là loại phân vùng cụ thểPhân vùng bảng cũng hỗ trợ các hoạt động
GEOMETRY
6,GEOMETRY
7 vàGEOMETRY
8. Các hoạt động phân vùng khác bị bỏ qua. Các cú pháp Phân vùng bảng sau đây không được hỗ trợGEOMETRY
9ascii
0ascii
1ascii
2Để biết thêm chi tiết, xem Phân vùng
Bảng phân tích
Bộ sưu tập thống kê hoạt động trong TiDB khác với trong MySQL, ở chỗ nó là một hoạt động tương đối nhẹ và tồn tại trong thời gian ngắn trong MySQL/InnoDB, trong khi ở TiDB, nó xây dựng lại hoàn toàn số liệu thống kê cho một bảng và có thể mất nhiều thời gian hơn để hoàn thành
Những khác biệt này được ghi lại thêm trong ascii
3
Hạn chế của cú pháp ascii
4
- Cú pháp
ascii
5 không được hỗ trợ - Cú pháp
ascii
6 không được hỗ trợ - Cú pháp
ascii
7 không ngụ ýascii
8 như trong MySQL 5. 7
Để biết chi tiết, hãy xem tài liệu tham khảo câu lệnh ascii
4
Xem tài liệu tham khảo câu lệnh latin1
0
Lượt xem
Lượt xem trong TiDB không cập nhật được. Chúng không hỗ trợ các thao tác ghi như latin1
0, latin1
2 và latin1
3
bảng tạm thời
Để biết chi tiết, hãy xem Khả năng tương thích giữa các bảng tạm thời cục bộ TiDB và bảng tạm thời MySQL
Bộ ký tự và bộ sưu tập
Để tìm hiểu chi tiết về các bộ ký tự và bộ đối chiếu được hỗ trợ bởi TiDB, hãy xem Tổng quan về bộ ký tự và bộ đối chiếu
Để tìm hiểu khả năng tương thích MySQL của bộ ký tự GBK, hãy xem khả năng tương thích GBK
TiDB kế thừa bộ ký tự được sử dụng trong bảng làm bộ ký tự quốc gia
động cơ lưu trữ
Vì lý do tương thích, TiDB hỗ trợ cú pháp để tạo bảng với các công cụ lưu trữ thay thế. Khi triển khai, TiDB mô tả siêu dữ liệu là công cụ lưu trữ InnoDB
TiDB hỗ trợ trừu tượng hóa công cụ lưu trữ tương tự như MySQL, nhưng bạn cần chỉ định công cụ lưu trữ bằng cách sử dụng tùy chọn latin1
4 khi bạn khởi động máy chủ TiDB