Releases: pingcap/tidb
Releases · pingcap/tidb
tidb-server v2.0.6
Improvements
- Make “set system variable” log shorter to save disk space #7031
- Record slow operations during the execution of
ADD INDEXin the log, to make troubleshooting easier #7083 - Reduce transaction conflicts when updating statistics #7138
- Improve the accuracy of row count estimation when the values pending to be estimated exceeds the statistics range #7185
- Choose the table with a smaller estimated row count as the outer table for
Index Jointo improve its execution efficiency #7277 - Add the recover mechanism for panics occurred during the execution of
ANALYZE TABLE, to avoid that the tidb-server is unavailable caused by abnormal behavior in the process of collecting statistics #7228 - Return
NULLand the corresponding warning when the results ofRPAD/LPADexceed the value of themax_allowed_packetsystem variable, compatible with MySQL #7244 - Set the upper limit of placeholders count in the
PREPAREstatement to 65535, compatible with MySQL #7250
Bug Fixes
- Fix the issue that the
DROP USERstatement is incompatible with MySQL behavior in some cases #7014 - Fix the issue that statements like
INSERT/LOAD DATAmeet OOM aftering openingtidb_batch_insert#7092 - Fix the issue that the statistics fail to automatically update when the data of a table keeps updating #7093
- Fix the issue that the firewall breaks inactive gPRC connections #7099
- Fix the issue that prefix index returns a wrong result in some scenarios #7126
- Fix the panic issue caused by outdated statistics in some scenarios #7155
- Fix the issue that one piece of index data is missed after the
ADD INDEXoperation in some scenarios #7156 - Fix the wrong result issue when querying
NULLvalues using the unique index in some scenarios #7172 - Fix the messy code issue of the
DECIMALmultiplication result in some scenarios #7212 - Fix the wrong result issue of
DECIMALmodulo operation in some scenarios #7245 - Fix the issue that the
UPDATE/DELETEstatement in a transaction returns a wrong result under some special sequence of statements #7219 - Fix the panic issue of the
UNION ALL/UPDATEstatement during the process of building the execution plan in some scenarios #7225 - Fix the issue that the range of prefix index is calculated incorrectly in some scenarios #7231
- Fix the issue that the
LOAD DATAstatement fails to write the binlog in some scenarios #7242 - Fix the wrong result issue of
SHOW CREATE TABLEduring the execution process ofADD INDEXin some scenarios #7243 - Fix the issue that panic occurs when
Index Joindoes not initialize timestamps in some scenarios #7246 - Fix the false alarm issue when
ADMIN CHECK TABLEmistakenly uses the timezone in the session #7258 - Fix the issue that
ADMIN CLEANUP INDEXdoes not clean up the index in some scenarios #7265 - Disable the Read Committed isolation level #7282
tidb-server v2.0.5
New Features
- Add the
tidb_disable_txn_auto_retrysystem variable which is used to disable the automatic retry of transactions #6877
Improvements
- Optimize the cost calculation of
Selectionto make the result more accurate #6989 - Select the query condition that completely matches the unique index or the primary key as the query path directly #6966
- Execute necessary cleanup when failing to start the service #6964
- Handle
\Nas NULL in theLoad Datastatement #6962 - Optimize the code structure of CBO #6953
- Report the monitoring metrics earlier when starting the service #6931
- Optimize the format of slow queries by removing the line breaks in SQL statements and adding user information #6931
- Support multiple asterisks in comments #6931
Bug Fixes
- Fix the issue that
KILL QUERYalways requires SUPER privilege #6931 - Fix the issue that users might fail to login when the number of users exceeds 1024 #6986
- Fix an issue about inserting unsigned
float/doubledata #6940 - Fix the compatibility of the
COM_FIELD_LISTcommand to resolve the panic issue in some MariaDB clients #6929 - Fix the
CREATE TABLE IF NOT EXISTS LIKEbehavior #6928 - Fix an issue in the process of TopN pushdown #6923
- Fix the ID record issue of the currently processing row when an error occurs in executing
Add Index#6903
tidb-server v2.1.0-beta
- SQL Optimizer
- Optimize the selection range of
Index Jointo improve the execution performance - Optimize correlated subquery, push down
Filter, and extend the index range, to improve the efficiency of some queries by orders of magnitude - Support
Index HintandJoin Hintin theUPDATEandDELETEstatements - Validate Hint
TIDM_SMJwhen no available index exists - Support pushdown of the
ABS,CEIL,FLOOR,IS TRUE, andIS FALSEfunctions - Handle the
IFandIFNULLfunctions especially in the constant folding process
- Optimize the selection range of
- SQL Execution Engine
- Implement parallel
Hash Aggregateoperators and improve the computing performance ofHash Aggregateby 350% in some scenarios - Implement parallel
Projectoperators and improve the performance by 74% in some scenarios - Read the data of the
Innertable andOutertable ofHash Joinconcurrently to improve the execution performance - Fix incorrect results of
INSERT … ON DUPLICATE KEY UPDATE …in some scenarios - Fix incorrect results of the
CONCAT_WS,FLOOR,CEIL, andDIVbuilt-in functions
- Implement parallel
- Server
- Add the HTTP API to scatter the distribution of table Regions in the TiKV cluster
- Add the
auto_analyze_ratiosystem variable to control the threshold value of automaticAnalyze - Add the HTTP API to control whether to open the general log
- Add the HTTP API to modify the log level online
- Add the user information in the general log and the slow query log
- Support the server side cursor
- Compatibility
- Support more MySQL syntax
- Make the
bitaggregate function support theALLparameter - Support the
SHOW PRIVILEGESstatement
- DML
- Decrease the memory usage of the
INSERT INTO SELECTstatement - Fix the performance issue of
PlanCache - Add the
tidb_retry_limitsystem variable to control the automatic retry times of transactions - Add the
tidb_disable_txn_auto_retrysystem variable to control whether the transaction tries automatically - Fix the accuracy issue of the written data of the
timetype - Support the queue of locally conflicted transactions to optimize the conflicted transaction performance
- Fix
Affected Rowsof theUPDATEstatement - Optimize the statement performance of
insert ignore on duplicate key update
- Decrease the memory usage of the
- DDL
- Optimize the execution speed of the
CreateTablestatement - Optimize the execution speed of
ADD INDEXand improve it greatly in some scenarios - Fix the issue that the number of added columns by
Alter table add columnexceeds the limit of the number of table columns - Fix the issue that DDL job retries lead to an increasing pressure on TiKV in abnormal conditions
- Fix the issue that TiDB continuously reloads the schema information in abnormal conditions
- Do not output the
FOREIGN KEYrelated information in the result ofSHOW CREATE TABLE - Support the
select tidb_is_ddl_owner()statement to facilitate judging whether TiDB isDDL Owner - Fix the issue that the index is deleted in the
Yeartype in some scenarios - Fix the renaming table issue in the concurrent execution scenario
- Support the
AlterTableForcesyntax - Support the
AlterTableRenameIndexsyntax withFromKeyandToKey - Add the table name and database name in the output information of
admin show ddl jobs
- Optimize the execution speed of the
tidb-server v2.0.4
New Features
- Support the
ALTER TABLE t DROP COLUMN a CASCADEsyntax - Support configuring the value of
tidb_snapshotto TSO
Improvements
- Refine the display of statement types in monitoring items
- Optimize the accuracy of query cost estimation
- Configure the
backoff max delayparameter of gRPC - Support configuring the memory threshold of a single statement in the configuration file
- Refactor the error of Optimizer
Bug Fixes
- Fix the side effects of the
Cast Decimaldata - Fix the wrong result issue of the
Merge Joinoperator in specific scenarios - Fix the issue of converting the Null object to String
- Fix the issue of casting the JSON type of data to the JSON type
- Fix the issue that the result order is not consistent with MySQL in the condition of
Union+OrderBy - Fix the compliance rules issue when the
Unionstatement checks theLimit/OrderByclause - Fix the compatibility issue of the
Union Allresult - Fix a bug in predicate pushdown
- Fix the compatibility issue of the
Unionstatement with theFor Updateclause - Fix the issue that the
concat_wsfunction mistakenly truncates the result
tidb-server v2.1.0-alpha
add pull request template (#6718)
tidb-server v2.0.3
New Features
- Support modifying the log level online
- Support the
COM_CHANGE_USERcommand - Support using the
TIMEtype parameters under the binary protocol
Improvements
- Optimize the cost estimation of query conditions with the
BETWEENexpression - Do not display the
FOREIGN KEYinformation in the result ofSHOW CREATE TABLE - Optimize the cost estimation for queries with the
LIMITclause
Bug Fixes
- Fix the issue about the
YEARtype as the unique index - Fix the issue about
ON DUPLICATE KEY UPDATEin conditions without the unique index - Fix the compatibility issue of the
CEILfunction - Fix the accuracy issue of the
DIVcalculation in theDECIMALtype - Fix the false alarm of
ADMIN CHECK TABLE - Fix the panic issue of
MAX/MINunder specific expression parameters - Fix the issue that the result of
JOINis null in special conditions - Fix the
INexpression issue when building and querying Range - Fix a Range calculation issue when using
Prepareto query andPlan Cacheis enabled - Fix the issue that the Schema information is frequently loaded in abnormal conditions
tidb-server v2.0.2
- Fix the issue of pushing down the Decimal division expression
- Support using the
USE INDEXsyntax in theDeletestatement - Forbid using the
shard_row_id_bitsfeature in columns withAuto-Increment - Add the timeout mechanism for writing Binlog
tidb-server v2.0.1
- Update the progress of
Add Indexto the DDL job information in real time - Add the
tidb_auto_analyze_ratiosession variable to control the threshold value of automatic statistics update - Fix an issue that not all residual states are cleaned up when the transaction commit fails
- Fix a bug about adding indexes in some conditions
- Fix the correctness related issue when DDL modifies surface operations in some concurrent scenarios
- Fix a bug that the result of
LIMITis incorrect in some conditions - Fix a capitalization issue of the
ADMIN CHECK INDEXstatement to make its index name case insensitive - Fix a compatibility issue about the
UNIONstatement - Fix a compatibility issue when inserting data of
TIMEtype - Fix a goroutine leak issue caused by
copIteratorTaskSenderin some conditions - Add an option for TiDB to control the behaviour of Binlog failure
- Refactor the
Coprocessorslow log,distinguish the scenario of tasks with long processing time and long waiting time - Log nothing when meeting MySQL protocol handshake error. Avoid too many logs caused by load balancer keep alive mechanism
- Refine “Out of range value for column” error message
- Fix a bug when there is a subquery in an
Updatestatement - Change the behaviour of handling
SIGTERM, do not wait for all queries to terminate anymore
tidb-server v2.0.0
- SQL Optimizer
- Use more compact data structure to reduce the memory usage of statistics information
- Speed up the loading statistics information when starting a tidb-server process
- Support updating statistics information dynamically [experimental]
- Optimize the cost model to provide more accurate query cost evaluation
- Use
Count-Min Sketchto estimate the cost of point queries more accurately - Support analyzing more complex conditions to make full use of indexes
- Support manually specifying the
Joinorder using theSTRAIGHT_JOINsyntax - Use the Stream Aggregation operator when the
GROUP BYclause is empty to improve the performance - Support using indexes for the
MAX/MINfunction - Optimize the processing algorithms for correlated subqueries to support decorrelating more types of correlated subqueries and transform them to
Left Outer Join - Extend
IndexLookupJointo be used in matching the index prefix
- SQL Execution Engine
- Refactor all operators using the Chunk architecture, improve the execution performance of analytical queries, and reduce memory usage.There is a significant improvement in the TPC-H benchmark result.
- Support the Streaming Aggregation operators pushdown
- Optimize the
Insert Into Ignorestatement to improve the performance by over 10 times - Optimize the
Insert On Duplicate Key Updatestatement to improve the performance by over 10 times - Optimize
Load Datato improve the performance by over 10 times - Push down more data types and functions to TiKV
- Support computing the memory usage of physical operators, and specifying the processing behavior in the configuration file and system variables when the memory usage exceeds the threshold
- Support limiting the memory usage by a single SQL statement to reduce the risk of OOM
- Support using implicit RowID in CRUD operations
- Improve the performance of point queries
- Server
- Support the Proxy Protocol
- Add more monitoring metrics and refine the log
- Support validating the configuration files
- Support obtaining the information of TiDB parameters through HTTP API
- Resolve Lock in the Batch mode to speed up garbage collection
- Support multi-threaded garbage collection
- Support TLS
- Compatibility
- Support more MySQL syntaxes
- Support modifying the
lower_case_table_namessystem variable in the configuration file to support the OGG data synchronization tool - Improve compatibility with the Navicat management tool
- Support displaying the table creating time in
Information_Schema - Fix the issue that the return types of some functions/expressions differ from MySQL
- Improve compatibility with JDBC
- Support more SQL Modes
- DDL
- Optimize the
Add Indexoperation to greatly improve the execution speed in some scenarios - Attach a lower priority to the
Add Indexoperation to reduce the impact on online business - Output more detailed status information of the DDL jobs in
Admin Show DDL Jobs - Support querying the original statements of currently running DDL jobs using
Admin Show DDL Job Queries JobID - Support recovering the index data using
Admin Recover Indexfor disaster recovery - Support modifying Table Options using the
Alterstatement
- Optimize the