You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Support Window Functions; compatible with all window functions in MySQL 8.0, including NTILE, LEAD, LAG, PERCENT_RANK, NTH_VALUE, CUME_DIST, FIRST_VALUE , LAST_VALUE, RANK, DENSE_RANK, and ROW_NUMBER
Support Views (Experimental)
Improve Table Partition
Support Range Partition
Support Hash Partition
Add the plug-in framework, supporting plugins such as IP Whitelist (Enterprise feature) and Audit Log (Enterprise feature).
Support the SQL Plan Management function to create SQL execution plan binding to ensure query stability (Experimental)
SQL Optimizer
Optimize the NOT EXISTS subquery and convert it to Anti Semi Join to improve performance
Optimize the constant propagation on the Outer Join, and add the optimization rule of Outer Join elimination to reduce non-effective computations and improve performance
Optimize the IN subquery to execute Inner Join after aggregation to improve performance
Optimize Index Join to adapt to more scenarios
Improve the Partition Pruning optimization rule of Range Partition
Optimize the query logic for _tidb_rowidto avoid full table scan and improve performance
Match more prefix columns of the indexes when extracting access conditions of composite indexes if there are relevant columns in the filter to improve performance
Improve the accuracy of cost estimates by using order correlation between columns
Optimize Join Reorder based on the Greedy algorithm and the dynamic planning algorithm to improve accuracy for index selection using Join
Support Skyline Pruning, with some rules to prevent the execution plan from relying too heavily on statistics to improve query stability
Improve the accuracy of row count estimation for single-column indexes with NULL values
Support FAST ANALYZE that randomly samples in each Region to avoid full table scan and improve performance with statistics collection
Support the incremental Analyze operation on monotonically increasing index columns to improve performance with statistics collection
Support using subqueries in the DO statement
Support using Index Join in transactions
Optimize prepare/execute to support DDL statements with no parameters
Modify the system behaviour to auto load statistics when the stats-lease variable value is 0
Support exporting historical statistics
Support the dump/load correlation of histograms
SQL Execution Engine
Optimize log output: EXECUTE outputs user variables and COMMIT outputs slow query logs to facilitate troubleshooting
Support the EXPLAIN ANALYZE function to improve SQL tuning usability
Support the admin show next_row_id command to get the ID of the next row
Add six built-in functions: JSON_QUOTE, JSON_ARRAY_APPEND, JSON_MERGE_PRESERVE, BENCHMARK ,COALESCE, and NAME_CONST
Optimize control logics on the chunk size to dynamically adjust based on the query context, to reduce the SQL execution time and resource consumption
Support tracking and controlling memory usage in three operators - TableReader, IndexReader and IndexLookupReader
Optimize the Merge Join operator to support an empty ON condition
Optimize write performance for single tables that contains too many columns
Improve the performance of admin show ddl jobs by supporting scanning data in reverse order
Add the split table region statement to manually split the table Region to alleviate the hotspot issue
Add the split index region statement to manually split the index Region to alleviate the hotspot issue
Add a blacklist to prohibit pushing down expressions to Coprocessor
Optimize the Expensive Query log to print the SQL query in the log when it exceeds the configured limit of execution time or memory
DDL
Support migrating from character set utf8 to utf8mb4
Change the default character set fromutf8 to utf8mb4
Add the alter schema statement to modify the character set and the collation of the database
Support ALTER algorithm INPLACE/INSTANT
Support SHOW CREATE VIEW
Support SHOW CREATE USER
Support fast recovery of mistakenly deleted tables
Support adjusting the number of concurrencies of ADD INDEX dynamically
Add the pre_split_regions option that pre-allocates Regions when creating the table using the CREATE TABLE statement, to relieve write hot Regions caused by lots of writes after the table creation
Support splitting Regions by the index and range of the table specified using SQL statements to relieve hotspot issues
Add the ddl_error_count_limit global variable to limit the number of DDL task retries
Add a feature to use SHARD_ROW_ID_BITS to scatter row IDs when the column contains an AUTO_INCREMENT attribute to relieve the hotspot issue
Optimize the lifetime of invalid DDL metadata to speed up recovering the normal execution of DDL operations after upgrading the TiDB cluster
Transactions
Support the pessimistic transaction model (Experimental)
Optimize transaction processing logics to adapt to more scenarios:
Change the default value tidb_disable_txn_auto_retry to on, which means non-auto committed transactions will not be retried
Add the tidb_batch_commit system variable to split a transaction into multiple ones to be executed concurrently
Add the tidb_low_resolution_tso system variable to control the number of TSOs to obtain in batches and reduce the number of times that transactions request for TSOs, to improve performance in scenarios with relatively low requirement of consistency
Add the tidb_skip_isolation_level_check variable to control whether to report errors when the isolation level is set to SERIALIZABLE
Modify the tidb_disable_txn_auto_retry system variable to make it work on all retryable errors
Permission Management
Perform permission check on the ANALYZE, USE, SET GLOBAL, and SHOW PROCESSLIST statements
Support Role Based Access Control (RBAC) (Experimental)
Server
Optimize slow query logs
Restructure the log format
Optimize the log content
Optimize the log query method to support using the INFORMATION_SCHEMA.SLOW_QUERY and ADMIN SHOW SLOW statements of the memory table to query slow query logs
Develop a unified log format specification with restructured log system to facilitate collection and analysis by tools
Support using SQL statements to manage Binlog services, including querying status, enabling Binlog, maintaining and sending Binlog strategies.
Support using unix_socket to connect to the database
Support Trace for SQL statements
Support getting information for a TiDB instance via the /debug/zip HTTP interface to facilitate troubleshooting.
Optimize monitoring items to facilitate troubleshooting:
Add the high_error_rate_feedback_total monitoring item to monitor the difference between the actual data volume and the estimated data volume based on statistics
Add a QPS monitoring item in the database dimension
Optimize the system initialization process to only allow the DDL owner to perform the initialization. This reduces the startup time for initialization or upgrading.
Optimize the execution logic of kill query to improve performance and ensure resource is release properly
Add a startup option config-check to check the validity of the configuration file
Add the tidb_back_off_weight system variable to control the backoff time of internal error retries
Add the wait_timeoutand interactive_timeout system variables to control the maximum idle connections allowed
Add the connection pool for TiKV to shorten the connection establishing time
Compatibility
Support the ALLOW_INVALID_DATES SQL mode
Support the MySQL 320 Handshake protocol
Support manifesting unsigned BIGINT columns as auto-increment columns
Support the SHOW CREATE DATABASE IF NOT EXISTS syntax
Optimize the fault tolerance of load data for CSV files
Abandon the predicate pushdown operation when the filtering condition contains a user variable to improve the compatibility with MySQL’s behavior of using user variables to simulate Window Functions