From 604ba29325c1a976e52559016b3c85423a255b8b Mon Sep 17 00:00:00 2001 From: Morgan Tocker Date: Fri, 7 Sep 2018 10:42:03 -0600 Subject: [PATCH 01/17] Added incompatibilities with MySQL events, sys do not exist pfs exists but returns empty. --- sql/mysql-compatibility.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/sql/mysql-compatibility.md b/sql/mysql-compatibility.md index 69d9df8857927..684785099ea52 100644 --- a/sql/mysql-compatibility.md +++ b/sql/mysql-compatibility.md @@ -24,6 +24,8 @@ However, in TiDB, the following MySQL features are not supported for the time be + The Non-UTF-8 characters + Add primary key + Drop primary key ++ Events ++ SYS Schema ## Features that are different from MySQL @@ -50,6 +52,10 @@ The auto-increment ID feature in TiDB is only guaranteed to be automatically inc > 1. The client issues the `insert into t values (1, 1)` statement to Instance B which sets the `id` to 1 and the statement is executed successfully. > 2. The client issues the `insert into t (c) (1)` statement to Instance A. This statement does not specify the value of `id`, so Instance A allocates the value. Currently, Instances A caches the auto-increment ID of [1, 30000], so it allocates the `id` value to 1 and adds 1 to the local counter. However, at this time the data with the `id` of 1 already exists in the cluster, therefore it reports `Duplicated Error`. +### Performance Schema + +Performance Schema tables will return empty results in TiDB. TiDB uses a combination of [Prometheus and Grafana](https://pingcap.com/docs/op-guide/monitor/#use-prometheus-and-grafana) for monitoring instead. + ### Built-in functions TiDB supports most of the MySQL built-in functions, but not all. See [TiDB SQL Grammar](https://pingcap.github.io/sqlgram/#FunctionCallKeyword) for the supported functions. @@ -115,4 +121,4 @@ TiDB implements an optimistic transaction model. Unlike MySQL, which uses row-le - The default value in MySQL: - On Linux: 0 - On Windows: 1 - - On macOS: 2 \ No newline at end of file + - On macOS: 2 From abb2613cf87ab0999a6da14640c9630efb7ce252 Mon Sep 17 00:00:00 2001 From: Morgan Tocker Date: Sat, 8 Sep 2018 08:07:33 -0600 Subject: [PATCH 02/17] Changed monitoring to performance metrics --- sql/mysql-compatibility.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/mysql-compatibility.md b/sql/mysql-compatibility.md index 684785099ea52..00f66f21e40e0 100644 --- a/sql/mysql-compatibility.md +++ b/sql/mysql-compatibility.md @@ -54,7 +54,7 @@ The auto-increment ID feature in TiDB is only guaranteed to be automatically inc ### Performance Schema -Performance Schema tables will return empty results in TiDB. TiDB uses a combination of [Prometheus and Grafana](https://pingcap.com/docs/op-guide/monitor/#use-prometheus-and-grafana) for monitoring instead. +Performance Schema tables will return empty results in TiDB. TiDB uses a combination of [Prometheus and Grafana](https://pingcap.com/docs/op-guide/monitor/#use-prometheus-and-grafana) for performance metrics instead. ### Built-in functions From 83feff05f985cc556daafdea7bbfc1e9611d7e40 Mon Sep 17 00:00:00 2001 From: Morgan Tocker Date: Sat, 8 Sep 2018 08:11:34 -0600 Subject: [PATCH 03/17] Improve unsupported features --- sql/mysql-compatibility.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sql/mysql-compatibility.md b/sql/mysql-compatibility.md index 00f66f21e40e0..15f1ad0f0d97f 100644 --- a/sql/mysql-compatibility.md +++ b/sql/mysql-compatibility.md @@ -14,9 +14,10 @@ However, in TiDB, the following MySQL features are not supported for the time be ## Unsupported features -+ Stored Procedures ++ Stored procedures and functions + View + Trigger ++ Events + The user-defined functions + The `FOREIGN KEY` constraints + The `FULLTEXT` indexes @@ -24,8 +25,7 @@ However, in TiDB, the following MySQL features are not supported for the time be + The Non-UTF-8 characters + Add primary key + Drop primary key -+ Events -+ SYS Schema ++ SYS schema ## Features that are different from MySQL From 739247828f3f5322bbf411b56105f7ffb8d08094 Mon Sep 17 00:00:00 2001 From: Morgan Tocker Date: Sat, 8 Sep 2018 08:12:29 -0600 Subject: [PATCH 04/17] Make all items plural --- sql/mysql-compatibility.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sql/mysql-compatibility.md b/sql/mysql-compatibility.md index 15f1ad0f0d97f..5aad8082704f4 100644 --- a/sql/mysql-compatibility.md +++ b/sql/mysql-compatibility.md @@ -15,8 +15,8 @@ However, in TiDB, the following MySQL features are not supported for the time be ## Unsupported features + Stored procedures and functions -+ View -+ Trigger ++ Views ++ Triggers + Events + The user-defined functions + The `FOREIGN KEY` constraints From fd9f75174e5f0c1857e3ab9588a1c3355a7730fd Mon Sep 17 00:00:00 2001 From: Morgan Tocker Date: Mon, 10 Sep 2018 10:23:01 -0600 Subject: [PATCH 05/17] Improved Clarity Remove 'the' from Foreign keys / fulltext / spatial indexes Clarify that it is not non-utf8 characters, but character sets other than utf8. --- sql/mysql-compatibility.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sql/mysql-compatibility.md b/sql/mysql-compatibility.md index 5aad8082704f4..816e6f335554f 100644 --- a/sql/mysql-compatibility.md +++ b/sql/mysql-compatibility.md @@ -18,11 +18,11 @@ However, in TiDB, the following MySQL features are not supported for the time be + Views + Triggers + Events -+ The user-defined functions -+ The `FOREIGN KEY` constraints -+ The `FULLTEXT` indexes -+ The `Spatial` indexes -+ The Non-UTF-8 characters ++ User-defined functions ++ `FOREIGN KEY` constraints ++ `FULLTEXT` indexes ++ `Spatial` indexes ++ Character sets other than UTF-8 + Add primary key + Drop primary key + SYS schema From 16d2e9292dea7f0e78c93d8b7927838b804327f7 Mon Sep 17 00:00:00 2001 From: Morgan Tocker Date: Mon, 10 Sep 2018 10:24:55 -0600 Subject: [PATCH 06/17] utf8 as code --- sql/mysql-compatibility.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sql/mysql-compatibility.md b/sql/mysql-compatibility.md index 816e6f335554f..64ab15e399736 100644 --- a/sql/mysql-compatibility.md +++ b/sql/mysql-compatibility.md @@ -21,8 +21,8 @@ However, in TiDB, the following MySQL features are not supported for the time be + User-defined functions + `FOREIGN KEY` constraints + `FULLTEXT` indexes -+ `Spatial` indexes -+ Character sets other than UTF-8 ++ `SPATIAL` indexes ++ Character sets other than `utf8` + Add primary key + Drop primary key + SYS schema From 0c3e415232ce6b2ed61280d260164f2770dcfa3b Mon Sep 17 00:00:00 2001 From: Morgan Tocker Date: Mon, 10 Sep 2018 10:46:37 -0600 Subject: [PATCH 07/17] Added Storage engines to compatibility --- sql/mysql-compatibility.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/sql/mysql-compatibility.md b/sql/mysql-compatibility.md index 64ab15e399736..a8d36b50ddec3 100644 --- a/sql/mysql-compatibility.md +++ b/sql/mysql-compatibility.md @@ -111,6 +111,25 @@ TiDB implements an optimistic transaction model. Unlike MySQL, which uses row-le + Transaction When TiDB is in the execution of loading data, by default, a record with 20,000 rows of data is seen as a transaction for persistent storage. If a load data operation inserts more than 20,000 rows, it will be divided into multiple transactions to commit. If an error occurs in one transaction, this transaction in process will not be committed. However, transactions before that are committed successfully. In this case, a part of the load data operation is successfully inserted, and the rest of the data insertion fails. But MySQL treats a load data operation as a transaction, one error leads to the failure of the entire load data operation. + +### Storage engines + +For compatibility reasons, TiDB supports the syntax to create tables with alternative storage engines. Meta-data commands will describe tables as being of engine InnoDB: + +```sql +mysql> CREATE TABLE t1 (a INT) ENGINE=MyISAM; +Query OK, 0 rows affected (0.14 sec) + +mysql> SHOW CREATE TABLE t1\G +*************************** 1. row *************************** + Table: t1 +Create Table: CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin +1 row in set (0.00 sec) +``` + +While architectually TiDB does support a similar storage engine abstraction to MySQL, user tables will be created in the engine specified by the `--store` option used when starting tidb-server (typically `tikv`). ### Default differences From 22e6abe5eb16c4b2eb69ba50cbd356ce46831642 Mon Sep 17 00:00:00 2001 From: Morgan Tocker Date: Mon, 10 Sep 2018 10:48:26 -0600 Subject: [PATCH 08/17] Update mysql-compatibility.md --- sql/mysql-compatibility.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sql/mysql-compatibility.md b/sql/mysql-compatibility.md index a8d36b50ddec3..1b97761979a73 100644 --- a/sql/mysql-compatibility.md +++ b/sql/mysql-compatibility.md @@ -52,9 +52,9 @@ The auto-increment ID feature in TiDB is only guaranteed to be automatically inc > 1. The client issues the `insert into t values (1, 1)` statement to Instance B which sets the `id` to 1 and the statement is executed successfully. > 2. The client issues the `insert into t (c) (1)` statement to Instance A. This statement does not specify the value of `id`, so Instance A allocates the value. Currently, Instances A caches the auto-increment ID of [1, 30000], so it allocates the `id` value to 1 and adds 1 to the local counter. However, at this time the data with the `id` of 1 already exists in the cluster, therefore it reports `Duplicated Error`. -### Performance Schema +### Performance schema -Performance Schema tables will return empty results in TiDB. TiDB uses a combination of [Prometheus and Grafana](https://pingcap.com/docs/op-guide/monitor/#use-prometheus-and-grafana) for performance metrics instead. +Performance schema tables will return empty results in TiDB. TiDB uses a combination of [Prometheus and Grafana](https://pingcap.com/docs/op-guide/monitor/#use-prometheus-and-grafana) for performance metrics instead. ### Built-in functions From 1719a2ee4a850aecc9487541c112f6875cdf62d3 Mon Sep 17 00:00:00 2001 From: Morgan Tocker Date: Mon, 10 Sep 2018 11:04:08 -0600 Subject: [PATCH 09/17] Added link to --store --- sql/mysql-compatibility.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/mysql-compatibility.md b/sql/mysql-compatibility.md index 1b97761979a73..eaef9d393d4eb 100644 --- a/sql/mysql-compatibility.md +++ b/sql/mysql-compatibility.md @@ -129,7 +129,7 @@ Create Table: CREATE TABLE `t1` ( 1 row in set (0.00 sec) ``` -While architectually TiDB does support a similar storage engine abstraction to MySQL, user tables will be created in the engine specified by the `--store` option used when starting tidb-server (typically `tikv`). +While architectually TiDB does support a similar storage engine abstraction to MySQL, user tables will be created in the engine specified by the [`--store`](server-command-option.md#--store) option used when starting tidb-server (typically `tikv`). ### Default differences From 511c1bc6717269264fd83c71ac4438785a468a19 Mon Sep 17 00:00:00 2001 From: Morgan Tocker Date: Mon, 10 Sep 2018 13:59:57 -0600 Subject: [PATCH 10/17] Add large transactions and EXPLAIN command --- sql/mysql-compatibility.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/sql/mysql-compatibility.md b/sql/mysql-compatibility.md index eaef9d393d4eb..c7d624a0428a2 100644 --- a/sql/mysql-compatibility.md +++ b/sql/mysql-compatibility.md @@ -89,12 +89,20 @@ TiDB implements the asynchronous schema changes algorithm in F1. The Data Manipu + Rename Table + Create Table Like -### Transaction +### Transaction model TiDB implements an optimistic transaction model. Unlike MySQL, which uses row-level locking to avoid write conflict, in TiDB, the write conflict is checked only in the `commit` process during the execution of the statements like `Update`, `Insert`, `Delete`, and so on. **Note:** On the business side, remember to check the returned results of `commit` because even there is no error in the execution, there might be errors in the `commit` process. +### Large transactions + +Due to the distributed, 2-phase commit requirement of TiDB, large transactions that modify data can be particularly problematic. TiDB intentionally sets some limits on transaction sizes to reduce this impact: + +* Each Key-Value entry is no more than 6MB +* The total number of Key-Value entry is no more than 300,000 rows +* The total size of Key-Value entry is no more than 100MB + ### Load data + Syntax: @@ -131,6 +139,10 @@ Create Table: CREATE TABLE `t1` ( While architectually TiDB does support a similar storage engine abstraction to MySQL, user tables will be created in the engine specified by the [`--store`](server-command-option.md#--store) option used when starting tidb-server (typically `tikv`). +### EXPLAIN + +The output of the query execution plan returned from the `EXPLAIN` command differs from MySQL. For more information, see [Understand the Query Execution Plan](understanding-the-query-execution-plan.md). + ### Default differences - Default character set: `latin1` in MySQL 5.7 (UTF-8 in MySQL 8.0), while `utf8mb4` in TiDB. From dfe48ad1da2487679a04b0a13c01b4f76fcf9008 Mon Sep 17 00:00:00 2001 From: Morgan Tocker Date: Mon, 10 Sep 2018 14:03:29 -0600 Subject: [PATCH 11/17] Added Optimizer Trace To differentiate: TiDB has query-tracing, mysql has optimizer tracing. --- sql/mysql-compatibility.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sql/mysql-compatibility.md b/sql/mysql-compatibility.md index c7d624a0428a2..0a07c13502866 100644 --- a/sql/mysql-compatibility.md +++ b/sql/mysql-compatibility.md @@ -26,6 +26,7 @@ However, in TiDB, the following MySQL features are not supported for the time be + Add primary key + Drop primary key + SYS schema ++ Optimizer Trace ## Features that are different from MySQL From 81a7499a509fe32f1d8a78fea50e0435c567f163 Mon Sep 17 00:00:00 2001 From: Morgan Tocker Date: Mon, 10 Sep 2018 14:04:39 -0600 Subject: [PATCH 12/17] lowercase t --- sql/mysql-compatibility.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/mysql-compatibility.md b/sql/mysql-compatibility.md index 0a07c13502866..b33445be67116 100644 --- a/sql/mysql-compatibility.md +++ b/sql/mysql-compatibility.md @@ -26,7 +26,7 @@ However, in TiDB, the following MySQL features are not supported for the time be + Add primary key + Drop primary key + SYS schema -+ Optimizer Trace ++ Optimizer trace ## Features that are different from MySQL From 4c850685856f31a3495fb635b007179e38813a54 Mon Sep 17 00:00:00 2001 From: Morgan Tocker Date: Mon, 10 Sep 2018 15:14:00 -0600 Subject: [PATCH 13/17] Include PR605 Add default differences --- sql/mysql-compatibility.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sql/mysql-compatibility.md b/sql/mysql-compatibility.md index b33445be67116..5d4ee00bae315 100644 --- a/sql/mysql-compatibility.md +++ b/sql/mysql-compatibility.md @@ -146,8 +146,13 @@ The output of the query execution plan returned from the `EXPLAIN` command diffe ### Default differences -- Default character set: `latin1` in MySQL 5.7 (UTF-8 in MySQL 8.0), while `utf8mb4` in TiDB. +- Default character set: + - The default value in TiDB is `utf8` which is equivalent to `utf8mb4` in MySQL. + - The default value in MySQL 5.7 is `latin1`, but changes in `utf8mb4` in MySQL 8.0. - Default collation: `latin1_swedish_ci` in MySQL 5.7, while `binary` in TiDB. +- Default SQL Mode: + - The default value in TiDB is `STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION`. + - The default value in MySQL 5.7 is `ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION`. - Default value of `lower_case_table_names`: - The default value in TiDB is 2 and currently TiDB only supports 2. - The default value in MySQL: From 2261a03cb3bc8d58ba29f6cd106cfa24944bdcce Mon Sep 17 00:00:00 2001 From: Morgan Tocker Date: Mon, 10 Sep 2018 15:17:54 -0600 Subject: [PATCH 14/17] lower m --- sql/mysql-compatibility.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/mysql-compatibility.md b/sql/mysql-compatibility.md index 5d4ee00bae315..f01179d6a4d7a 100644 --- a/sql/mysql-compatibility.md +++ b/sql/mysql-compatibility.md @@ -150,7 +150,7 @@ The output of the query execution plan returned from the `EXPLAIN` command diffe - The default value in TiDB is `utf8` which is equivalent to `utf8mb4` in MySQL. - The default value in MySQL 5.7 is `latin1`, but changes in `utf8mb4` in MySQL 8.0. - Default collation: `latin1_swedish_ci` in MySQL 5.7, while `binary` in TiDB. -- Default SQL Mode: +- Default SQL mode: - The default value in TiDB is `STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION`. - The default value in MySQL 5.7 is `ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION`. - Default value of `lower_case_table_names`: From c0e33519be20014e1714c7a18dce05438e9c3979 Mon Sep 17 00:00:00 2001 From: Morgan Tocker Date: Tue, 11 Sep 2018 21:41:08 -0600 Subject: [PATCH 15/17] Fixed spacing --- sql/mysql-compatibility.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sql/mysql-compatibility.md b/sql/mysql-compatibility.md index f01179d6a4d7a..e6e4020c43956 100644 --- a/sql/mysql-compatibility.md +++ b/sql/mysql-compatibility.md @@ -55,7 +55,7 @@ The auto-increment ID feature in TiDB is only guaranteed to be automatically inc ### Performance schema -Performance schema tables will return empty results in TiDB. TiDB uses a combination of [Prometheus and Grafana](https://pingcap.com/docs/op-guide/monitor/#use-prometheus-and-grafana) for performance metrics instead. +Performance schema tables will return empty results in TiDB. TiDB uses a combination of [Prometheus and Grafana](https://pingcap.com/docs/op-guide/monitor/#use-prometheus-and-grafana) for performance metrics instead. ### Built-in functions @@ -123,7 +123,7 @@ Due to the distributed, 2-phase commit requirement of TiDB, large transactions t ### Storage engines -For compatibility reasons, TiDB supports the syntax to create tables with alternative storage engines. Meta-data commands will describe tables as being of engine InnoDB: +For compatibility reasons, TiDB supports the syntax to create tables with alternative storage engines. Meta-data commands will describe tables as being of engine InnoDB: ```sql mysql> CREATE TABLE t1 (a INT) ENGINE=MyISAM; @@ -142,7 +142,7 @@ While architectually TiDB does support a similar storage engine abstraction to M ### EXPLAIN -The output of the query execution plan returned from the `EXPLAIN` command differs from MySQL. For more information, see [Understand the Query Execution Plan](understanding-the-query-execution-plan.md). +The output of the query execution plan returned from the `EXPLAIN` command differs from MySQL. For more information, see [Understand the Query Execution Plan](understanding-the-query-execution-plan.md). ### Default differences From 6fa236ad2c9d7a31ed6089082eca017d2944bd2d Mon Sep 17 00:00:00 2001 From: Morgan Tocker Date: Wed, 12 Sep 2018 09:50:59 -0600 Subject: [PATCH 16/17] Addressed PR Feedback --- sql/mysql-compatibility.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sql/mysql-compatibility.md b/sql/mysql-compatibility.md index e6e4020c43956..21484deafdde8 100644 --- a/sql/mysql-compatibility.md +++ b/sql/mysql-compatibility.md @@ -55,7 +55,7 @@ The auto-increment ID feature in TiDB is only guaranteed to be automatically inc ### Performance schema -Performance schema tables will return empty results in TiDB. TiDB uses a combination of [Prometheus and Grafana](https://pingcap.com/docs/op-guide/monitor/#use-prometheus-and-grafana) for performance metrics instead. +Performance schema tables return empty results in TiDB. TiDB uses a combination of [Prometheus and Grafana](https://pingcap.com/docs/op-guide/monitor/#use-prometheus-and-grafana) for performance metrics instead. ### Built-in functions @@ -101,8 +101,8 @@ TiDB implements an optimistic transaction model. Unlike MySQL, which uses row-le Due to the distributed, 2-phase commit requirement of TiDB, large transactions that modify data can be particularly problematic. TiDB intentionally sets some limits on transaction sizes to reduce this impact: * Each Key-Value entry is no more than 6MB -* The total number of Key-Value entry is no more than 300,000 rows -* The total size of Key-Value entry is no more than 100MB +* The total number of Key-Value entries is no more than 300,000 rows +* The total size of Key-Value entries is no more than 100MB ### Load data @@ -123,7 +123,7 @@ Due to the distributed, 2-phase commit requirement of TiDB, large transactions t ### Storage engines -For compatibility reasons, TiDB supports the syntax to create tables with alternative storage engines. Meta-data commands will describe tables as being of engine InnoDB: +For compatibility reasons, TiDB supports the syntax to create tables with alternative storage engines. Metadata commands describe tables as being of engine InnoDB: ```sql mysql> CREATE TABLE t1 (a INT) ENGINE=MyISAM; @@ -138,7 +138,7 @@ Create Table: CREATE TABLE `t1` ( 1 row in set (0.00 sec) ``` -While architectually TiDB does support a similar storage engine abstraction to MySQL, user tables will be created in the engine specified by the [`--store`](server-command-option.md#--store) option used when starting tidb-server (typically `tikv`). +Architecturally, TiDB does support a similar storage engine abstraction to MySQL, user tables are be created in the engine specified by the [`--store`](server-command-option.md#--store) option used when starting tidb-server (typically `tikv`). ### EXPLAIN @@ -148,7 +148,7 @@ The output of the query execution plan returned from the `EXPLAIN` command diffe - Default character set: - The default value in TiDB is `utf8` which is equivalent to `utf8mb4` in MySQL. - - The default value in MySQL 5.7 is `latin1`, but changes in `utf8mb4` in MySQL 8.0. + - The default value in MySQL 5.7 is `latin1`, but changes to `utf8mb4` in MySQL 8.0. - Default collation: `latin1_swedish_ci` in MySQL 5.7, while `binary` in TiDB. - Default SQL mode: - The default value in TiDB is `STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION`. From 40a90827cf66250a7a2ad82fa4551e87f9be50e8 Mon Sep 17 00:00:00 2001 From: Morgan Tocker Date: Thu, 13 Sep 2018 06:45:40 -0600 Subject: [PATCH 17/17] Addressed PR feedback --- sql/mysql-compatibility.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/mysql-compatibility.md b/sql/mysql-compatibility.md index 21484deafdde8..2fb70fb8f290b 100644 --- a/sql/mysql-compatibility.md +++ b/sql/mysql-compatibility.md @@ -101,7 +101,7 @@ TiDB implements an optimistic transaction model. Unlike MySQL, which uses row-le Due to the distributed, 2-phase commit requirement of TiDB, large transactions that modify data can be particularly problematic. TiDB intentionally sets some limits on transaction sizes to reduce this impact: * Each Key-Value entry is no more than 6MB -* The total number of Key-Value entries is no more than 300,000 rows +* The total number of Key-Value entries is no more than 300,000 * The total size of Key-Value entries is no more than 100MB ### Load data