diff --git a/FAQ.md b/FAQ.md index 3873dda413bfd..5aaf94d5d0b39 100644 --- a/FAQ.md +++ b/FAQ.md @@ -55,7 +55,7 @@ Any language supported by MySQL client or driver. #### Can I use other Key-Value storage engines with TiDB? -Yes. Besides TiKV, TiDB supports many popular standalone storage engines, such as GolevelDB and BoltDB. If the storage engine is a KV engine that supports transactions and it provides a client that meets the interface requirement of TiDB, then it can connect to TiDB. +Yes. TiKV and TiDB supports many popular standalone storage engines, such as GolevelDB and BoltDB. If the storage engine is a KV engine that supports transactions and it provides a client that meets the interface requirement of TiDB, then it can connect to TiDB. #### What's the recommended solution for the deployment of three geo-distributed data centers? @@ -304,7 +304,7 @@ Take `Release Version: v1.0.3-1-ga80e796` as an example of version number descri The TiDB community is highly active. After the 1.0 GA release, the engineers have been keeping optimizing and fixing bugs. Therefore, the TiDB version is updated quite fast. If you want to keep informed of the latest version, see [TiDB Weekly update](https://pingcap.com/weekly/). -It is recommended to deploy the TiDB cluster using the latest version of TiDB-Ansible, which will also be updated along with the TiDB version. Besides, TiDB has a unified management of the version number after the 1.0 GA release. You can view the version number using the following two methods: +It is recommended to deploy the TiDB cluster using the latest version of TiDB-Ansible, which will also be updated along with the TiDB version. TiDB has a unified management of the version number after the 1.0 GA release. You can view the version number using the following two methods: - `select tidb_version()` - `tidb-server -V` @@ -394,7 +394,7 @@ The processing time is different for different scenarios. Generally, you can con 2. The `Add Index` operation with a relatively large number of rows in the corresponding data table: the processing time depends on the specific number of rows and the QPS at that time (the `Add Index` operation has a lower priority than ordinary SQL operations) 3. Other DDL operations: about 1s -Besides, if the TiDB server instance that receives the DDL request is the same TiDB server instance that the DDL owner is in, the first and third scenarios above might cost dozens to hundreds of milliseconds. +If the TiDB server instance that receives the DDL request is the same TiDB server instance that the DDL owner is in, the first and third scenarios above may cost only dozens to hundreds of milliseconds. #### Why it is very slow to run DDL statements sometimes? @@ -479,7 +479,7 @@ Writing or reading a large volume of data in TiKV takes up high I/O, memory and #### Does TiKV support SAS/SATA disks or mixed deployment of SSD/SAS disks? -No. For OLTP scenarios, TiDB requires high I/O disks for data access and operation. As a distributed database with strong consistency, TiDB has some write amplification such as replica replication and bottom layer storage compaction. Therefore, it is recommended to use NVMe SSD as the storage disks in TiDB best practices. Besides, the mixed deployment of TiKV and PD is not supported. +No. For OLTP scenarios, TiDB requires high I/O disks for data access and operation. As a distributed database with strong consistency, TiDB has some write amplification such as replica replication and bottom layer storage compaction. Therefore, it is recommended to use NVMe SSD as the storage disks in TiDB best practices. Mixed deployment of TiKV and PD is not supported. #### Is the Range of the Key data table divided before data access? @@ -752,7 +752,7 @@ Use `admin show ddl` to view the current job of adding an index. #### Does TiDB support CBO (Cost-Based Optimization)? If yes, to what extent? -Yes. TiDB uses the cost-based optimizer. The cost model and statistics are constantly optimized. Besides, TiDB also supports correlation algorithms like hash join and soft merge. +Yes. TiDB uses the cost-based optimizer. The cost model and statistics are constantly optimized. TiDB also supports correlation algorithms like hash join and soft merge. #### How to determine whether I need to execute `analyze` on a table? @@ -840,4 +840,4 @@ This error usually occurs when the version of TiDB does not match with the versi When you execute the `LOAD DATA LOCAL` statement but the MySQL client does not allow executing this statement (the value of the `local_infile` option is 0), this error occurs. -The solution is to use the `--local-infile=1` option when you start the MySQL client. For example, use command like `mysql --local-infile=1 -u root -h 127.0.0.1 -P 4000`. The default value of `local-infile` is different in different versions of MySQL client, therefore you need to configure it in some MySQL clients and do not need to configure it in some others. \ No newline at end of file +The solution is to use the `--local-infile=1` option when you start the MySQL client. For example, use command like `mysql --local-infile=1 -u root -h 127.0.0.1 -P 4000`. The default value of `local-infile` is different in different versions of MySQL client, therefore you need to configure it in some MySQL clients and do not need to configure it in some others. diff --git a/sql/ddl.md b/sql/ddl.md index 9b2507a4a31ff..c95bc7579e589 100644 --- a/sql/ddl.md +++ b/sql/ddl.md @@ -294,7 +294,7 @@ The support for specific operation types is as follows: - `DROP COLUMN`: currently does not support the deletion of columns that are primary key columns or index columns - `ADD COLUMN`: currently, does not support setting the newly added column as the primary key or unique index at the same time, and does not support setting the column property to `AUTO_INCREMENT` - `CHANGE/MODIFY COLUMN`: currently supports some of the syntaxes, and the details are as follows: - - In updating data types, the `CHANGE/MODIFY COLUMN` only supports updates between integer types, updates between string types, and updates between Blob types. You can only extend the length of the original type. Besides, the column properties of `unsigned`/`charset`/`collate` cannot be changed. The specific supported types are classified as follows: + - In updating data types, the `CHANGE/MODIFY COLUMN` only supports updates between integer types, updates between string types, and updates between Blob types. You can only extend the length of the original type. The column properties of `unsigned`/`charset`/`collate` cannot be changed. The specific supported types are classified as follows: - Integer types: `TinyInt`, `SmallInt`, `MediumInt`, `Int`, `BigInt` - String types: `Char`, `Varchar`, `Text`, `TinyText`, `MediumText`, `LongText` - Blob types: `Blob`, `TinyBlob`, `MediumBlob`, `LongBlob` @@ -344,4 +344,4 @@ The `DROP INDEX` statement is used to delete a table index. Currently, it does n ## ADMIN statement -You can use the `ADMIN` statement to view the information related to DDL job. For details, see [here](admin.md#admin-statement). \ No newline at end of file +You can use the `ADMIN` statement to view the information related to DDL job. For details, see [here](admin.md#admin-statement). diff --git a/sql/encrypted-connections.md b/sql/encrypted-connections.md index 7ee38af1e5b96..83c0e335af78d 100644 --- a/sql/encrypted-connections.md +++ b/sql/encrypted-connections.md @@ -110,7 +110,7 @@ mysql> SHOW STATUS LIKE "%Ssl%"; ...... ``` -Besides, for the official MySQL client, you can also use the `STATUS` or `\s` statement to view the connection status: +For the official MySQL client, you can also use the `STATUS` or `\s` statement to view the connection status: ``` mysql> \s diff --git a/sql/transaction.md b/sql/transaction.md index 8033dd31eaa35..f442a1342d5ed 100644 --- a/sql/transaction.md +++ b/sql/transaction.md @@ -19,7 +19,7 @@ If you set the value of `autocommit` to 1, the status of the current Session is In the autocommit status, the updates are automatically committed to the database after you run each statement. Otherwise, the updates are only committed when you run the `COMMIT` or `BEGIN` statement. -Besides, autocommit is also a System Variable. You can update the current Session or the Global value using the following variable assignment statement: +`autocommit` is also a System Variable. You can update the current Session or the Global value using the following variable assignment statement: ```sql SET @@SESSION.autocommit = {0 | 1}; diff --git a/sql/understanding-the-query-execution-plan.md b/sql/understanding-the-query-execution-plan.md index f95b7c819de72..7e644820a7d3e 100644 --- a/sql/understanding-the-query-execution-plan.md +++ b/sql/understanding-the-query-execution-plan.md @@ -46,7 +46,7 @@ Similar to the table data, the index data in TiDB is also stored in TiKV. The ke In the WHERE/HAVING/ON condition, analyze the results returned by primary key or index key queries. For example, number and date types of comparison symbols, greater than, less than, equal to, greater than or equal to, less than or equal to, and character type LIKE symbols. -TiDB only supports the comparison symbols of which one side is a column and the other side is a constant or can be calculated as a constant. Query conditions like `year(birth_day) < 1992` cannot use the index. Besides, try to use the same type to compare, to avoid that the index cannot be used because of additional cast operations. For example, in `user_id = 123456`, if the `user_id` is a string, you need to write `123456` as a string constant. +TiDB only supports the comparison symbols of which one side is a column and the other side is a constant or can be calculated as a constant. Query conditions like `year(birth_day) < 1992` cannot use the index. Try to use the same type to compare: additional cast operations prevent the index from being used. For example, in `user_id = 123456`, if the `user_id` is a string, you need to write `123456` as a string constant. Using `AND` and `OR` combination on the range query conditions of the same column is equivalent to getting the intersection or union set. For multidimensional combined indexes, you can write the conditions for multiple columns. For example, in the `(a, b, c)` combined index, when `a` is an equivalent query, you can continue to calculate the query range of `b`; when `b` is also an equivalent query, you can continue to calculate the query range of `c`; otherwise, if `a` is a non-equivalent query, you can only calculate the query range of `a`. diff --git a/tools/tikv-control.md b/tools/tikv-control.md index 86464b64c5b0e..bb8a506285c4f 100644 --- a/tools/tikv-control.md +++ b/tools/tikv-control.md @@ -22,7 +22,7 @@ TiKV Control (`tikv-ctl`) is a command line tool of TiKV, used to manage the clu Unless otherwise noted, all commands supports both the remote mode and the local mode. -Besides, `tikv-ctl` has two simple commands `--to-hex` and `--to-escaped`, which are used to make simple changes to the form of the key. +Additionally, `tikv-ctl` has two simple commands `--to-hex` and `--to-escaped`, which are used to make simple changes to the form of the key. Generally, use the `escaped` form of the key. For example: @@ -111,7 +111,7 @@ success! The `tombstone` command is usually used in circumstances where the sync-log is not enabled, and some data written in the Raft state machine is lost caused by power down. -In a TiKV instance, you can use this command to set the status of some Regions to Tombstone. Then when you restart the instance, those Regions are skipped. Besides, those Regions need to have enough healthy replicas in other TiKV instances, so as to be able to continue writing and reading through the Raft mechanism. +In a TiKV instance, you can use this command to set the status of some Regions to Tombstone. Then when you restart the instance, those Regions are skipped. Those Regions need to have enough healthy replicas in other TiKV instances to be able to continue writing and reading through the Raft mechanism. ```bash pd-ctl>> operator add remove-peer @@ -174,4 +174,4 @@ If the command is successfully executed, it prints the above information. If the ```bash $ tikv-ctl --host 127.0.0.1:20160 region-properties -r 2 - ``` \ No newline at end of file + ```