- Docs Home
- About TiDB
- Quick Start
- Develop
- Overview
- Quick Start
- Build a TiDB Cluster in TiDB Cloud (Developer Tier)
- CRUD SQL in TiDB
- Build a Simple CRUD App with TiDB
- Example Applications
- Connect to TiDB
- Design Database Schema
- Write Data
- Read Data
- Transaction
- Optimize
- Troubleshoot
- Reference
- Cloud Native Development Environment
- Third-party Support
- Deploy
- Software and Hardware Requirements
- Environment Configuration Checklist
- Plan Cluster Topology
- Install and Start
- Verify Cluster Status
- Test Cluster Performance
- Migrate
- Overview
- Migration Tools
- Migration Scenarios
- Migrate from Aurora
- Migrate MySQL of Small Datasets
- Migrate MySQL of Large Datasets
- Migrate and Merge MySQL Shards of Small Datasets
- Migrate and Merge MySQL Shards of Large Datasets
- Migrate from CSV Files
- Migrate from SQL Files
- Migrate from One TiDB Cluster to Another TiDB Cluster
- Migrate from TiDB to MySQL-compatible Databases
- Advanced Migration
- Integrate
- Maintain
- Monitor and Alert
- Troubleshoot
- TiDB Troubleshooting Map
- Identify Slow Queries
- Analyze Slow Queries
- SQL Diagnostics
- Identify Expensive Queries Using Top SQL
- Identify Expensive Queries Using Logs
- Statement Summary Tables
- Troubleshoot Hotspot Issues
- Troubleshoot Increased Read and Write Latency
- Save and Restore the On-Site Information of a Cluster
- Troubleshoot Cluster Setup
- Troubleshoot High Disk I/O Usage
- Troubleshoot Lock Conflicts
- Troubleshoot TiFlash
- Troubleshoot Write Conflicts in Optimistic Transactions
- Troubleshoot Inconsistency Between Data and Indexes
- Performance Tuning
- Tuning Guide
- Configuration Tuning
- System Tuning
- Software Tuning
- SQL Tuning
- Overview
- Understanding the Query Execution Plan
- SQL Optimization Process
- Overview
- Logic Optimization
- Physical Optimization
- Prepare Execution Plan Cache
- Control Execution Plans
- Tutorials
- TiDB Tools
- Overview
- Use Cases
- Download
- TiUP
- Documentation Map
- Overview
- Terminology and Concepts
- Manage TiUP Components
- FAQ
- Troubleshooting Guide
- Command Reference
- Overview
- TiUP Commands
- TiUP Cluster Commands
- Overview
- tiup cluster audit
- tiup cluster check
- tiup cluster clean
- tiup cluster deploy
- tiup cluster destroy
- tiup cluster disable
- tiup cluster display
- tiup cluster edit-config
- tiup cluster enable
- tiup cluster help
- tiup cluster import
- tiup cluster list
- tiup cluster patch
- tiup cluster prune
- tiup cluster reload
- tiup cluster rename
- tiup cluster replay
- tiup cluster restart
- tiup cluster scale-in
- tiup cluster scale-out
- tiup cluster start
- tiup cluster stop
- tiup cluster template
- tiup cluster upgrade
- TiUP DM Commands
- Overview
- tiup dm audit
- tiup dm deploy
- tiup dm destroy
- tiup dm disable
- tiup dm display
- tiup dm edit-config
- tiup dm enable
- tiup dm help
- tiup dm import
- tiup dm list
- tiup dm patch
- tiup dm prune
- tiup dm reload
- tiup dm replay
- tiup dm restart
- tiup dm scale-in
- tiup dm scale-out
- tiup dm start
- tiup dm stop
- tiup dm template
- tiup dm upgrade
- TiDB Cluster Topology Reference
- DM Cluster Topology Reference
- Mirror Reference Guide
- TiUP Components
- PingCAP Clinic Diagnostic Service
- TiDB Operator
- Dumpling
- TiDB Lightning
- TiDB Data Migration
- About TiDB Data Migration
- Architecture
- Quick Start
- Deploy a DM cluster
- Tutorials
- Advanced Tutorials
- Maintain
- Cluster Upgrade
- Tools
- Performance Tuning
- Manage Data Sources
- Manage Tasks
- Export and Import Data Sources and Task Configurations of Clusters
- Handle Alerts
- Daily Check
- Reference
- Architecture
- Command Line
- Configuration Files
- OpenAPI
- Compatibility Catalog
- Secure
- Monitoring and Alerts
- Error Codes
- Glossary
- Example
- Troubleshoot
- Release Notes
- Backup & Restore (BR)
- TiDB Binlog
- TiCDC
- Dumpling
- sync-diff-inspector
- TiSpark
- Reference
- Cluster Architecture
- Key Monitoring Metrics
- Secure
- Privileges
- SQL
- SQL Language Structure and Syntax
- SQL Statements
ADD COLUMNADD INDEXADMINADMIN CANCEL DDLADMIN CHECKSUM TABLEADMIN CHECK [TABLE|INDEX]ADMIN SHOW DDL [JOBS|QUERIES]ADMIN SHOW TELEMETRYALTER DATABASEALTER INDEXALTER INSTANCEALTER PLACEMENT POLICYALTER TABLEALTER TABLE COMPACTALTER USERANALYZE TABLEBACKUPBATCHBEGINCHANGE COLUMNCOMMITCHANGE DRAINERCHANGE PUMPCREATE [GLOBAL|SESSION] BINDINGCREATE DATABASECREATE INDEXCREATE PLACEMENT POLICYCREATE ROLECREATE SEQUENCECREATE TABLE LIKECREATE TABLECREATE USERCREATE VIEWDEALLOCATEDELETEDESCDESCRIBEDODROP [GLOBAL|SESSION] BINDINGDROP COLUMNDROP DATABASEDROP INDEXDROP PLACEMENT POLICYDROP ROLEDROP SEQUENCEDROP STATSDROP TABLEDROP USERDROP VIEWEXECUTEEXPLAIN ANALYZEEXPLAINFLASHBACK TABLEFLUSH PRIVILEGESFLUSH STATUSFLUSH TABLESGRANT <privileges>GRANT <role>INSERTKILL [TIDB]LOAD DATALOAD STATSMODIFY COLUMNPREPARERECOVER TABLERENAME INDEXRENAME TABLEREPLACERESTOREREVOKE <privileges>REVOKE <role>ROLLBACKSELECTSET DEFAULT ROLESET [NAMES|CHARACTER SET]SET PASSWORDSET ROLESET TRANSACTIONSET [GLOBAL|SESSION] <variable>SHOW ANALYZE STATUSSHOW [BACKUPS|RESTORES]SHOW [GLOBAL|SESSION] BINDINGSSHOW BUILTINSSHOW CHARACTER SETSHOW COLLATIONSHOW [FULL] COLUMNS FROMSHOW CONFIGSHOW CREATE PLACEMENT POLICYSHOW CREATE SEQUENCESHOW CREATE TABLESHOW CREATE USERSHOW DATABASESSHOW DRAINER STATUSSHOW ENGINESSHOW ERRORSSHOW [FULL] FIELDS FROMSHOW GRANTSSHOW INDEX [FROM|IN]SHOW INDEXES [FROM|IN]SHOW KEYS [FROM|IN]SHOW MASTER STATUSSHOW PLACEMENTSHOW PLACEMENT FORSHOW PLACEMENT LABELSSHOW PLUGINSSHOW PRIVILEGESSHOW [FULL] PROCESSSLISTSHOW PROFILESSHOW PUMP STATUSSHOW SCHEMASSHOW STATS_HEALTHYSHOW STATS_HISTOGRAMSSHOW STATS_METASHOW STATUSSHOW TABLE NEXT_ROW_IDSHOW TABLE REGIONSSHOW TABLE STATUSSHOW [FULL] TABLESSHOW [GLOBAL|SESSION] VARIABLESSHOW WARNINGSSHUTDOWNSPLIT REGIONSTART TRANSACTIONTABLETRACETRUNCATEUPDATEUSEWITH
- Data Types
- Functions and Operators
- Overview
- Type Conversion in Expression Evaluation
- Operators
- Control Flow Functions
- String Functions
- Numeric Functions and Operators
- Date and Time Functions
- Bit Functions and Operators
- Cast Functions and Operators
- Encryption and Compression Functions
- Locking Functions
- Information Functions
- JSON Functions
- Aggregate (GROUP BY) Functions
- Window Functions
- Miscellaneous Functions
- Precision Math
- Set Operations
- List of Expressions for Pushdown
- TiDB Specific Functions
- Clustered Indexes
- Constraints
- Generated Columns
- SQL Mode
- Table Attributes
- Transactions
- Garbage Collection (GC)
- Views
- Partitioning
- Temporary Tables
- Cached Tables
- Character Set and Collation
- Placement Rules in SQL
- System Tables
mysql- INFORMATION_SCHEMA
- Overview
ANALYZE_STATUSCLIENT_ERRORS_SUMMARY_BY_HOSTCLIENT_ERRORS_SUMMARY_BY_USERCLIENT_ERRORS_SUMMARY_GLOBALCHARACTER_SETSCLUSTER_CONFIGCLUSTER_HARDWARECLUSTER_INFOCLUSTER_LOADCLUSTER_LOGCLUSTER_SYSTEMINFOCOLLATIONSCOLLATION_CHARACTER_SET_APPLICABILITYCOLUMNSDATA_LOCK_WAITSDDL_JOBSDEADLOCKSENGINESINSPECTION_RESULTINSPECTION_RULESINSPECTION_SUMMARYKEY_COLUMN_USAGEMETRICS_SUMMARYMETRICS_TABLESPARTITIONSPLACEMENT_POLICIESPROCESSLISTREFERENTIAL_CONSTRAINTSSCHEMATASEQUENCESSESSION_VARIABLESSLOW_QUERYSTATISTICSTABLESTABLE_CONSTRAINTSTABLE_STORAGE_STATSTIDB_HOT_REGIONSTIDB_HOT_REGIONS_HISTORYTIDB_INDEXESTIDB_SERVERS_INFOTIDB_TRXTIFLASH_REPLICATIKV_REGION_PEERSTIKV_REGION_STATUSTIKV_STORE_STATUSUSER_PRIVILEGESVIEWS
METRICS_SCHEMA
- UI
- TiDB Dashboard
- Overview
- Maintain
- Access
- Overview Page
- Cluster Info Page
- Top SQL Page
- Key Visualizer Page
- Metrics Relation Graph
- SQL Statements Analysis
- Slow Queries Page
- Cluster Diagnostics
- Search Logs Page
- Instance Profiling
- Session Management and Configuration
- FAQ
- CLI
- Command Line Flags
- Configuration File Parameters
- System Variables
- Storage Engines
- Telemetry
- Errors Codes
- Table Filter
- Schedule Replicas by Topology Labels
- FAQs
- Release Notes
- All Releases
- Release Timeline
- TiDB Versioning
- v6.1
- v6.0
- v5.4
- v5.3
- v5.2
- v5.1
- v5.0
- v4.0
- v3.1
- v3.0
- v2.1
- v2.0
- v1.0
- Glossary
TiDB 4.0.15 Release Notes
Release Date: September 27, 2021
TiDB version: 4.0.15
Compatibility changes
TiDB
- Fix the issue that executing
SHOW VARIABLESin a new session is slow. This fix reverts some changes made in #21045 and might cause compatibility issues. #24326
- The following bug fixes change execution results, which might cause upgrade incompatibilities:
- Fix the issue that
greatest(datetime) union nullreturns empty string #26532 - Fix the issue that the
havingclause might not work correctly #26496 - Fix the wrong execution results that occur when the collations around the
betweenexpression are different #27146 - Fix the result wrong that occurs when the argument of the
extractfunction is a negative duration #27236 - Fix the wrong execution results that occur when the column in the
group_concatfunction has a non-bin collation #27429 - Fix the issue that column information is missed when converting the
Applyoperator toJoin#27233 - Fix the issue of unexpected behavior when casting the invalid string to
DATE#26762 - Fix a bug that the
count distinctresult on multiple columns is wrong when the new collation is enabled #27091
- Fix the issue that
- Fix the issue that executing
Feature enhancement
TiKV
- Support changing TiCDC configurations dynamically #10645
Improvements
TiDB
- Trigger auto-analyze based on the histogram row count #24237
TiKV
- Handle read ready and write ready separately to reduce read latency #10475
- The slow log of TiKV coprocessor only considers the time spent on processing requests. #10841
- Drop log instead of blocking threads when the slogger thread is overloaded and the queue is filled up #10841
- Reduce the size of Resolved TS messages to save network bandwidth #2448
PD
- Improve the performance of synchronizing Region information between PDs #3932
Tools
Backup & Restore (BR)
- Split and scatter Regions concurrently to improve restore speed #1363
- Retry BR tasks when encountering the PD request error or the TiKV I/O timeout error #27787
- Reduce empty Regions when restoring many small tables to avoid affecting cluster operations after the restore #1374
- Perform the
rebase auto idoperation while creating tables, which saves the separaterebase auto idDDL operation and speeds up restore #1424
Dumpling
- Filter the skipped databases before getting the table information to improve the filtering efficiency of
SHOW TABLE STATUS#337 - Use
SHOW FULL TABLESto get table information for tables to be exported, becauseSHOW TABLE STATUScannot work properly in some MySQL versions #322 - Support backing up MySQL-compatible databases that do not support the
START TRANSACTION ... WITH CONSISTENT SNAPSHOTor theSHOW CREATE TABLEsyntax #309 - Refine the Dumpling warning log to avoid the misleading information that a dump fails #340
- Filter the skipped databases before getting the table information to improve the filtering efficiency of
TiDB Lightning
- Support importing data into tables that have expression index or the index that depends on virtual generated columns #1404
TiCDC
- Always pulls old values from TiKV internally to improve usability #2397
- Reduce the goroutine usage when a table's Regions are all transferred away from a TiKV node #2284
- Optimize workerpool for fewer goroutines when concurrency is high #2211
- Execute DDL statements asynchronously to avoid affecting other changefeeds #2295
- Add a global gRPC connection pool and share gRPC connections among KV clients #2531
- Fail fast for unrecoverable DML errors #1724
- Optimize memory management when the Unified Sorter is using memory to sort data #2553
- Add Prometheus metrics for DDL executions #2595 #2669
- Prohibit operating TiCDC clusters across major or minor versions #2601
- Remove
file sorter#2325 - Clean up changefeed metrics when a changefeed is removed, and clean up processor metrics when a processor exits #2156
- Optimize the lock-resolving algorithm after a Region is initialized #2188
Bug fixes
TiDB
Fix a bug that collation is incorrectly set for binary literals when building ranges #23672
Fix the "index out of range" error that occurs when a query includes both
GROUP BYandUNION#26553Fix the issue that TiDB might fail to send requests if TiKV has tombstone stores #23676 #24648
Remove the undocumented
/debug/sub-optimal-planHTTP API #27264Fix the issue of wrong character set and collation for the
case whenexpression #26662
TiKV
- Fix the issue that BR reports the "file already exists" error when TDE is enabled during data restore #1179
- Fix the potential disk full issue caused by corrupted snapshot files #10813
- Fix the issue that TiKV deletes stale Regions too frequently #10680
- Fix the issue that TiKV frequently reconnects the PD client #9690
- Check stale file information from the encryption file dictionary #9115
PD
TiFlash
- Fix the potential issue of data inconsistency that occurs when TiFlash is deployed on multiple disks
- Fix a bug of incorrect results that occurs when queries contain filters like
CONSTANT,<,<=,>,>=, orCOLUMN - Fix the issue that the store size in metrics is inaccurate under heavy writing
- Fix a potential bug that TiFlash cannot restore data when deployed on multiple disks
- Fix the potential issue that TiFlash cannot garbage-collect the delta data after running for a long time
Tools
Backup & Restore (BR)
- Fix a bug that the average speed is inaccurately calculated for backup and restore #1405
TiCDC
- Fix the
ErrSchemaStorageTableMisserror that occurs when the DDL Job duplication is encountered in the integrated test #2422 - Fix a bug that a changefeed cannot be removed if the
ErrGCTTLExceedederror occurs #2391 - Fix the issue that outdated capture might appear in the output of the
capture listcommand #2388 - Fix the deadlock issue in the TiCDC processor #2017
- Fix a data inconsistency issue that occurs because multiple processors might write data to the same table when this table is being re-scheduled #2230
- Fix a bug that the
EtcdWorkersnapshot isolation is violated in metadata management #2557 - Fix the issue that the changefeed cannot be stopped due to the DDL sink error #2552
- Fix the issue of TiCDC Open Protocol: TiCDC outputs an empty value when there is no change in a transaction #2612
- Fix a bug that causes TiCDC to panic on the unsigned
TINYINTtype #2648 - Decrease the gRPC window size to avoid the OOM that occurs when TiCDC captures too many Regions #2202
- Fix the OOM issue that occurs when TiCDC captures too many Regions #2673
- Fix the issue of process panic that occurs when encoding the data types such as
mysql.TypeString, mysql.TypeVarString, mysql.TypeVarcharinto JSON #2758 - Fix the a memory leak issue that might occur when creating a new changefeed #2389
- Fix a bug that DDL handling fails when a changefeed starts at the finish TS of a schema change #2603
- Fix the issue of potential DDL loss when the owner crashes when executing DDL statements #1260
- Fix the issue of insecure concurrent access to the map in
SinkManager#2298
- Fix the
Was this page helpful?