- 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 COLUMN
ADD INDEX
ADMIN
ADMIN CANCEL DDL
ADMIN CHECKSUM TABLE
ADMIN CHECK [TABLE|INDEX]
ADMIN SHOW DDL [JOBS|QUERIES]
ADMIN SHOW TELEMETRY
ALTER DATABASE
ALTER INDEX
ALTER INSTANCE
ALTER PLACEMENT POLICY
ALTER TABLE
ALTER TABLE COMPACT
ALTER USER
ANALYZE TABLE
BACKUP
BATCH
BEGIN
CHANGE COLUMN
COMMIT
CHANGE DRAINER
CHANGE PUMP
CREATE [GLOBAL|SESSION] BINDING
CREATE DATABASE
CREATE INDEX
CREATE PLACEMENT POLICY
CREATE ROLE
CREATE SEQUENCE
CREATE TABLE LIKE
CREATE TABLE
CREATE USER
CREATE VIEW
DEALLOCATE
DELETE
DESC
DESCRIBE
DO
DROP [GLOBAL|SESSION] BINDING
DROP COLUMN
DROP DATABASE
DROP INDEX
DROP PLACEMENT POLICY
DROP ROLE
DROP SEQUENCE
DROP STATS
DROP TABLE
DROP USER
DROP VIEW
EXECUTE
EXPLAIN ANALYZE
EXPLAIN
FLASHBACK TABLE
FLUSH PRIVILEGES
FLUSH STATUS
FLUSH TABLES
GRANT <privileges>
GRANT <role>
INSERT
KILL [TIDB]
LOAD DATA
LOAD STATS
MODIFY COLUMN
PREPARE
RECOVER TABLE
RENAME INDEX
RENAME TABLE
REPLACE
RESTORE
REVOKE <privileges>
REVOKE <role>
ROLLBACK
SELECT
SET DEFAULT ROLE
SET [NAMES|CHARACTER SET]
SET PASSWORD
SET ROLE
SET TRANSACTION
SET [GLOBAL|SESSION] <variable>
SHOW ANALYZE STATUS
SHOW [BACKUPS|RESTORES]
SHOW [GLOBAL|SESSION] BINDINGS
SHOW BUILTINS
SHOW CHARACTER SET
SHOW COLLATION
SHOW [FULL] COLUMNS FROM
SHOW CONFIG
SHOW CREATE PLACEMENT POLICY
SHOW CREATE SEQUENCE
SHOW CREATE TABLE
SHOW CREATE USER
SHOW DATABASES
SHOW DRAINER STATUS
SHOW ENGINES
SHOW ERRORS
SHOW [FULL] FIELDS FROM
SHOW GRANTS
SHOW INDEX [FROM|IN]
SHOW INDEXES [FROM|IN]
SHOW KEYS [FROM|IN]
SHOW MASTER STATUS
SHOW PLACEMENT
SHOW PLACEMENT FOR
SHOW PLACEMENT LABELS
SHOW PLUGINS
SHOW PRIVILEGES
SHOW [FULL] PROCESSSLIST
SHOW PROFILES
SHOW PUMP STATUS
SHOW SCHEMAS
SHOW STATS_HEALTHY
SHOW STATS_HISTOGRAMS
SHOW STATS_META
SHOW STATUS
SHOW TABLE NEXT_ROW_ID
SHOW TABLE REGIONS
SHOW TABLE STATUS
SHOW [FULL] TABLES
SHOW [GLOBAL|SESSION] VARIABLES
SHOW WARNINGS
SHUTDOWN
SPLIT REGION
START TRANSACTION
TABLE
TRACE
TRUNCATE
UPDATE
USE
WITH
- 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_STATUS
CLIENT_ERRORS_SUMMARY_BY_HOST
CLIENT_ERRORS_SUMMARY_BY_USER
CLIENT_ERRORS_SUMMARY_GLOBAL
CHARACTER_SETS
CLUSTER_CONFIG
CLUSTER_HARDWARE
CLUSTER_INFO
CLUSTER_LOAD
CLUSTER_LOG
CLUSTER_SYSTEMINFO
COLLATIONS
COLLATION_CHARACTER_SET_APPLICABILITY
COLUMNS
DATA_LOCK_WAITS
DDL_JOBS
DEADLOCKS
ENGINES
INSPECTION_RESULT
INSPECTION_RULES
INSPECTION_SUMMARY
KEY_COLUMN_USAGE
METRICS_SUMMARY
METRICS_TABLES
PARTITIONS
PLACEMENT_POLICIES
PROCESSLIST
REFERENTIAL_CONSTRAINTS
SCHEMATA
SEQUENCES
SESSION_VARIABLES
SLOW_QUERY
STATISTICS
TABLES
TABLE_CONSTRAINTS
TABLE_STORAGE_STATS
TIDB_HOT_REGIONS
TIDB_HOT_REGIONS_HISTORY
TIDB_INDEXES
TIDB_SERVERS_INFO
TIDB_TRX
TIFLASH_REPLICA
TIKV_REGION_PEERS
TIKV_REGION_STATUS
TIKV_STORE_STATUS
USER_PRIVILEGES
VIEWS
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 RC.1 Release Notes
Release date: April 28, 2020
TiDB version: 4.0.0-rc.1
Compatibility Changes
TiKV
- Disable the Hibernate Region feature by default #7618
TiDB Binlog
- Support the sequence DDL operation in Drainer #950
Important Bug Fixes
TiDB
- Fix the issue that the
INSERT ... ON DUPLICATE UPDATE
statement might be incorrectly executed on multiple rows in an explicit transaction becauseMemBuffer
is not checked #16689 - Fix the data inconsistency when locking duplicated keys on multiple rows #16769
- Fix the panic that occurs when recycling the non-superbatch idle connection between TiDB instances #16303
- Fix the issue that the
TiKV
TiFlash
- Fix the data loss issue caused by the
rename table
operation when multiple data paths are configured - Fix the issue that an error occurs when reading data from a merged Region
- Fix the issue that an error occurs when reading data from a Region that is in the abnormal state
- Modify the mapping of table names in TiFlash to correctly support
recover table
/flashback table
- Modify the storage path to fix the potential data loss issue that occurs when renaming the table
- Fix the potential panic of TiDB when Super Batch is enabled
- Modify the read mode in the online update scenario to improve the read performance
- Fix the data loss issue caused by the
TiCDC
- Fix the replication failure that occurs because the schema internally maintained in TiCDC fails to correctly handle the timing issue of read and write operations #438 #450 #478 #496
- Fix the bug that the TiKV client fails to correctly maintain the internal resources when encountering some TiKV anomalies #499 #492
- Fix the bug that meta data is not correctly cleaned up and abnormally remains in the TiCDC nodes #488 #504
- Fix the issue that the TiKV client fails to correctly handle the repeated sending of the prewrite event #446
- Fix the issue that the TiKV client fails to correctly handle the redundant prewrite events received before the initialization #448
Backup & Restore (BR)
New Features
TiDB
- Support sending Coprocessor requests to TiFlash in batches #16226
- Enable the Coprocessor cache feature by default #16710
- Parse only the registered sections of a statement in the special comment of the SQL statement #16157
- Support using the
SHOW CONFIG
syntax to show the configurations of PD and TiKV instances #16475
TiKV
- Support using the user-owned KMS key for the server-side encryption when backing up data to S3 #7630
- Enable the load-based
split region
operation #7623 - Support validating common names #7468
- Add the file lock check to avoid starting multiple TiKV instances that are bound to the same address #7447
- Support AWS KMS in encryption at rest #7465
Placement Driver (PD)
- Remove
config manager
to let other components control their component configurations #2349
- Remove
TiFlash
- Add the metrics report related to the read and write workloads of DeltaTree engine
- Cache the
handle
andversion
columns to reduce the disk I/O of a single read or write request - Support pushing down the
fromUnixTime
anddateFormat
functions - Evaluate the global state according to the first disk and report this evaluation
- Add the graphics in Grafana related to the read and write workloads of DeltaTree engine
- Optimize the decimal data encoding in the
Chunk
codec - Implement the gRPC API of Diagnostics (SQL diagnosis) to support querying system tables such as
INFORMATION_SCHEMA.CLUSTER_INFO
TiCDC
Backup and Restore (BR)
- Support configuring S3/GCS in the storage URL #246
Bug Fixes
- TiDB
- Fix the issue that negative numbers cannot be correctly displayed in the system table because the columns are defined as unsigned #16004
- Add a warning when the
use_index_merge
hint contains the invalid index name #15960 - Forbid multiple instances of a TiDB server sharing the same temporary directory #16026
- Fix the panic that occurs during the execution of
explain for connection
when the plan cache is enabled #16285 - Fix the issue that the result of the
tidb_capture_plan_baselines
system variable is incorrectly displayed #16048 - Fix the issue that the
group by
clause in theprepare
statement is incorrectly parsed #16377 - Fix the panic that might occur during the execution of the
analyze primary key
statement #16081 - Fix the issue that the TiFlash store information in the
cluster_info
system table is wrong #16024 - Fix the panic that might occur during the Index Merge process #16360
- Fix the issue that an incorrect result might occur when the Index Merge reader reads the generated columns #16359
- Fix the incorrect display of the default sequence value in the
show create table
statement #16526 - Fix the issue that the
not-null
error is returned because the sequence is used as the default values of the primary key #16510 - Fix the issue that no error is reported for a blocked SQL execution when TiKV continues to return the
StaleCommand
error #16530 - Fix the issue that an error is reported if you only specify
COLLATE
when creating a database; add the missingCOLLATE
part in the result ofSHOW CREATE DATABASE
#16540 - Fix the partition pruning failure when the plan cache is enabled #16723
- Fix the bug that
PointGet
returns wrong results when handling the overflow #16755 - Fix the issue that a wrong result is returned when querying the
slow_query
system table with equal time values #16806
TiKV
- Address the OpenSSL security issue: CVE-2020-1967 #7622
- Avoid protecting rollback records written by
BatchRollback
to improve performance when many write conflicts exist in optimistic transactions #7604 - Fix the issue that the needless wake-up of transactions results in useless retry and performance reduction in heavy lock-race workloads #7551
- Fix the issue that the Region might be stuck in the multi-time merging #7518
- Fix the issue that the learner is not deleted when deleting the learner #7518
- Fix the issue that follower read might cause panic in raft-rs #7408
- Fix the bug that a SQL operation might fail because of the
group by constant
error #7383 - Fix the issue that an optimistic lock might block reads if the corresponding primary lock is a pessimistic lock #7328
PD
- Fix the issue that some APIs might fail in the TLS validation #2363
- Fix the issue that the configuration API cannot accept a configuration item with a prefix #2354
- Fix the issue that the
500
error is returned when the scheduler is not found #2328 - Fix the issue that the
404
error is returned for thescheduler config balance-hot-region-scheduler list
command #2321
TiFlash
- Disable the coarse-grained index optimization for the storage engine
- Fix the bug that an exception is thrown when resolving locks for Regions and some locks need to be skipped
- Fix the null pointer exception (NPE) when collecting the Coprocessor statistics
- Fix the check for Region meta to ensure that the process of Region Split/Region Merge is correct
- Fix the issue that the message size exceeds the limit for gRPC because the size of Coprocessor response is not estimated
- Fix the handling of the
AdminCmdType::Split
command in TiFlash
Was this page helpful?