PingCAP
  • Cloud
  • TiDB Academy
  • Docs
  • Success Stories
  • Blog
  • Free Download
PingCAP
  • Cloud
  • TiDB Academy
  • Docs
  • Success Stories
  • Blog
  • Free Download

Contact

中文
文档
v3.0 (stable) dev v2.1This doc does not exist in v2.1
  • Introduction
    • TiDB Introduction
    • Benchmarks
      • How to Test TiDB Using Sysbench
      • How to Run TPC-C Test on TiDB
      • Sysbench Performance Test - v3.0 vs. v2.1
      • TPC-C Performance Test - v3.0 vs. v2.1
      • Interaction Test on Online Workloads and `ADD INDEX` Operations
      • TiDB in Kubernetes Sysbench Test
      • DM 1.0-alpha Benchmark Report
      • DM 1.0-GA Benchmark Report
  • Concepts
    • Architecture
    • Key Features
      • Horizontal Scalability
      • MySQL Compatible Syntax
      • Replicate from and to MySQL
      • Distributed Transactions with Strong Consistency
      • Cloud Native Architecture
      • Minimize ETL with HTAP
      • Fault Tolerance & Recovery with Raft
      • Automatic Rebalancing
      • Deployment and Orchestration with Ansible, Kubernetes, Docker
      • JSON Support
      • Spark Integration
      • Read Historical Data Without Restoring from Backup
      • Fast Import and Restore of Data
      • Hybrid of Column and Row Storage
      • SQL Plan Management
      • Open Source
      • Online Schema Changes
  • How-to
    • Get Started
      • Start a Cluster
        • From Binary
        • From Homebrew
        • From DBdeployer
        • In Docker Compose
      • Explore SQL with TiDB
      • Import Example Database
      • Read Historical Data
      • TiDB Binlog Tutorial
      • TiDB Data Migration Tutorial
      • TiDB Lightning Tutorial
      • TiSpark Quick Start Guide
    • Deploy
      • Hardware Recommendations
      • From Binary Tarball
        • For Testing Environments
        • For Production Environments
      • Orchestrated Deployment
        • Ansible Deployment (Recommended)
        • Ansible Offline Deployment
        • Docker Deployment
      • Geographic Redundancy
        • Overview
        • Configure Location Awareness
      • Data Migration with Ansible
    • Configure
      • Time Zone
      • Memory Control
    • Secure
      • Transport Layer Security (TLS)
        • Enable TLS For MySQL Clients
        • Enable TLS Between TiDB Components
      • Generate Self-signed Certificates
    • Monitor
      • Overview
      • Monitor a TiDB Cluster
    • Migrate
      • Overview
      • Migrate from MySQL
        • Migrate the Full Data
        • Migrate the Incremental Data
      • Migrate from Aurora
      • Migrate from CSV
    • Maintain
      • Common Ansible Operations
      • Backup and Restore
        • Use `mydumper` and `loader`
        • Use BR
      • Identify Slow Queries
    • Scale
      • Scale using Ansible
      • Scale a TiDB Cluster
    • Upgrade
      • Upgrade to the Latest Version
    • Troubleshoot
      • Troubleshoot Cluster Setup
      • Troubleshoot TiDB Lightning
  • Reference
    • SQL
      • MySQL Compatibility
      • SQL Language Structure
        • Literal Values
        • Schema Object Names
        • Keywords and Reserved Words
        • User-Defined Variables
        • Expression Syntax
        • Comment Syntax
      • Data Types
        • Overview
        • Default Values
        • Numeric Types
          • `BIT`
          • `BOOL|BOOLEAN`
          • `TINYINT`
          • `SMALLINT`
          • `MEDIUMINT`
          • `INT|INTEGER`
          • `BIGINT`
          • `DECIMAL`
          • `FLOAT`
          • `DOUBLE`
        • Date and Time Types
          • `DATE`
          • `DATETIME`
          • `TIMESTAMP`
          • `TIME`
          • `YEAR`
        • String Types
          • `CHAR`
          • `VARCHAR`
          • `TEXT`
          • `LONGTEXT`
          • `BINARY`
          • `VARBINARY`
          • `TINYBLOB`
          • `BLOB`
          • `MEDIUMBLOB`
          • `LONGBLOB`
          • `ENUM`
          • `SET`
        • JSON Type
      • Functions and Operators
        • Function and Operator Reference
        • 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
        • Information Functions
        • JSON Functions
        • Aggregate (GROUP BY) Functions
        • Window Functions
        • Miscellaneous Functions
        • Precision Math
        • List of Expressions for Pushdown
      • SQL Statements
        • `ADD COLUMN`
        • `ADD INDEX`
        • `ADMIN`
        • `ALTER DATABASE`
        • `ALTER TABLE`
        • `ALTER USER`
        • `ANALYZE TABLE`
        • `BEGIN`
        • `COMMIT`
        • `CREATE DATABASE`
        • `CREATE INDEX`
        • `CREATE TABLE LIKE`
        • `CREATE TABLE`
        • `CREATE USER`
        • `CREATE VIEW`
        • `DEALLOCATE`
        • `DELETE`
        • `DESC`
        • `DESCRIBE`
        • `DO`
        • `DROP COLUMN`
        • `DROP DATABASE`
        • `DROP INDEX`
        • `DROP TABLE`
        • `DROP USER`
        • `DROP VIEW`
        • `EXECUTE`
        • `EXPLAIN ANALYZE`
        • `EXPLAIN`
        • `FLUSH PRIVILEGES`
        • `FLUSH STATUS`
        • `FLUSH TABLES`
        • `GRANT <privileges>`
        • `INSERT`
        • `KILL [TIDB]`
        • `LOAD DATA`
        • `MODIFY COLUMN`
        • `PREPARE`
        • `RECOVER TABLE`
        • `RENAME INDEX`
        • `RENAME TABLE`
        • `REPLACE`
        • `REVOKE <privileges>`
        • `ROLLBACK`
        • `SELECT`
        • `SET [NAMES|CHARACTER SET]`
        • `SET PASSWORD`
        • `SET TRANSACTION`
        • `SET [GLOBAL|SESSION] <variable>`
        • `SHOW CHARACTER SET`
        • `SHOW COLLATION`
        • `SHOW [FULL] COLUMNS FROM`
        • `SHOW CREATE TABLE`
        • `SHOW CREATE USER`
        • `SHOW DATABASES`
        • `SHOW ENGINES`
        • `SHOW ERRORS`
        • `SHOW [FULL] FIELDS FROM`
        • `SHOW GRANTS`
        • `SHOW INDEXES [FROM|IN]`
        • `SHOW INDEX [FROM|IN]`
        • `SHOW KEYS [FROM|IN]`
        • `SHOW PRIVILEGES`
        • `SHOW [FULL] PROCESSSLIST`
        • `SHOW SCHEMAS`
        • `SHOW [FULL] TABLES`
        • `SHOW TABLE REGIONS`
        • `SHOW TABLE STATUS`
        • `SHOW [GLOBAL|SESSION] VARIABLES`
        • `SHOW WARNINGS`
        • `SPLIT REGION`
        • `START TRANSACTION`
        • `TRACE`
        • `TRUNCATE`
        • `UPDATE`
        • `USE`
      • Constraints
      • Generated Columns
      • Partitioning
      • Character Set
      • SQL Mode
      • Views
    • Configuration
      • tidb-server
        • MySQL System Variables
        • TiDB Specific System Variables
        • Configuration Flags
        • Configuration File
      • pd-server
        • Configuration Flags
        • Configuration File
      • tikv-server
        • Configuration Flags
        • Configuration File
    • Security
      • Security Compatibility with MySQL
      • The TiDB Access Privilege System
      • TiDB User Account Management
      • Role-Based Access Control
    • Transactions
      • Overview
      • Transaction Model
      • Isolation Levels
      • Pessimistic Transactions
    • System Databases
      • `mysql`
      • `information_schema`
    • Errors Codes
    • Supported Client Drivers
    • Garbage Collection (GC)
      • GC Overview
      • GC Configuration
    • Performance
      • Overview
      • Understanding the Query Execution Plan
      • Introduction to Statistics
      • Optimizer Hints
      • Follower Read
      • Check the TiDB Cluster Status Using SQL Statements
      • Execution Plan Binding
      • Statement Summary Table
      • Tune TiKV
    • Key Monitoring Metrics
      • Overview
      • TiDB
      • PD
      • TiKV
    • Alert Rules
    • Best Practices
      • Highly Concurrent Write Best Practices
      • HAProxy Best Practices
      • PD Scheduling Best Practices
    • TiSpark
    • TiDB Binlog
      • Overview
      • Deploy
      • Maintain
      • Monitor
      • Upgrade
      • Reparo
      • Binlog Slave Client
      • FAQ
    • Tools
      • Mydumper
      • Syncer
      • Loader
      • TiDB Data Migration
        • Overview
          • DM Overview
          • Restrictions
          • DM-worker
          • DM Relay Log
        • Features
          • Table Routing
          • Black and White Lists
          • Binlog Event Filter
          • Replication Delay Monitoring
          • Sharding Support
            • Introduction
            • Restrictions
            • Handle Sharding DDL Locks Manually
        • Usage Scenarios
          • Simple Scenario
          • Shard Merge Scenario
          • Shard Merge Best Practices
        • Deploy
        • Configure
          • Overview
          • Task Configuration
        • Manage the DM Cluster
          • Cluster Operations
          • Cluster Upgrade
        • Manage Replication Tasks
          • Manage Tasks
          • Precheck Tasks
          • Query Task Status
          • Skip or Replace Abnormal SQL Statements
        • Monitor
        • Migrate from MySQL compatible database
          • Migrate from Aurora
        • Troubleshoot
          • DM Troubleshooting
          • Error Description
          • Error Handling
        • FAQ
      • TiDB Lightning
        • Overview
        • Deployment
        • Configuration
        • Checkpoints
        • Table Filter
        • CSV Support
        • Web Interface
        • Monitor
        • Troubleshoot
        • FAQ
      • sync-diff-inspector
      • PD Control
      • PD Recover
      • TiKV Control
      • TiDB Control
      • Download
  • TiDB in Kubernetes
    • About TiDB Operator
    • Get Started
      • kind
      • GKE
      • Minikube
    • Deploy
      • Prerequisites
      • TiDB Operator
      • TiDB in General Kubernetes
      • TiDB in AWS EKS
      • TiDB in GCP GKE
      • TiDB in Alibaba Cloud ACK
      • Access TiDB in Kubernetes
    • Configure
      • Cluster Initialization
    • Monitor
    • Maintain
      • Destroy a TiDB cluster
      • Maintain a Hosting Kubernetes Node
      • Backup and Restore
      • Restore Data with TiDB Lightning
      • Collect Logs
      • Automatic Failover
      • TiDB Binlog
    • Scale
    • Upgrade
      • TiDB Cluster
      • TiDB Operator
    • Reference
      • Configuration
        • TiDB Cluster
        • Backup
        • PV
        • TiDB Drainer
      • Tools
        • tkctl
        • Tools in Kubernetes
    • Troubleshoot
    • FAQs
  • FAQs
    • TiDB FAQs
    • TiDB Lightning FAQs
    • Upgrade FAQs
  • Support
    • Support Resources
    • Report an Issue
  • Contribute
    • Contribute to TiDB
    • Improve the Docs
  • Adopters
  • Roadmap
  • Releases
    • v3.0
      • 3.0.7
      • 3.0.6
      • 3.0.5
      • 3.0.4
      • 3.0.3
      • 3.0.2
      • 3.0.1
      • 3.0 GA
      • 3.0.0-rc.3
      • 3.0.0-rc.2
      • 3.0.0-rc.1
      • 3.0.0-beta.1
      • 3.0.0-beta
    • v2.1
      • 2.1.18
      • 2.1.17
      • 2.1.16
      • 2.1.15
      • 2.1.14
      • 2.1.13
      • 2.1.12
      • 2.1.11
      • 2.1.10
      • 2.1.9
      • 2.1.8
      • 2.1.7
      • 2.1.6
      • 2.1.5
      • 2.1.4
      • 2.1.3
      • 2.1.2
      • 2.1.1
      • 2.1 GA
      • 2.1 RC5
      • 2.1 RC4
      • 2.1 RC3
      • 2.1 RC2
      • 2.1 RC1
      • 2.1 Beta
    • v2.0
      • 2.0.11
      • 2.0.10
      • 2.0.9
      • 2.0.8
      • 2.0.7
      • 2.0.6
      • 2.0.5
      • 2.0.4
      • 2.0.3
      • 2.0.2
      • 2.0.1
      • 2.0
      • 2.0 RC5
      • 2.0 RC4
      • 2.0 RC3
      • 2.0 RC1
      • 1.1 Beta
      • 1.1 Alpha
    • v1.0
      • 1.0.8
      • 1.0.7
      • 1.0.6
      • 1.0.5
      • 1.0.4
      • 1.0.3
      • 1.0.2
      • 1.0.1
      • 1.0
      • Pre-GA
      • RC4
      • RC3
      • RC2
      • RC1

TiDB 3.0.4 Release Notes

Release date: October 8, 2019

TiDB version: 3.0.4

TiDB Ansible version: 3.0.4

  • New features
    • Add the performance_schema.events_statements_summary_by_digest system table to troubleshoot performance issues at the SQL level
    • Add the WHERE clause in TiDB’s SHOW TABLE REGIONS syntax
    • Add the worker-count and txn-batch configuration items in Reparo to control the recovery speed
  • Improvements
    • Support batch Region split command and empty split command in TiKV to improve split performance
    • Support double linked list for RocksDB in TiKV to improve performance of reverse scan
    • Add two perf tools iosnoop and funcslower in TiDB Ansible to better diagnose the cluster state
    • Optimize the output of slow query logs in TiDB by deleting redundant fields
  • Changed behaviors
    • Update the default value of txn-local-latches.enable to false to disable the default behavior of checking conflicts of local transactions in TiDB
    • Add the tidb_txn_mode system variable of global scope in TiDB and allow using the pessimistic lock; note that TiDB still adopts the optimistic lock by default
    • Replace the Index_ids field in TiDB slow query logs with Index_names to improve the usability of slow query logs
    • Add the split-region-max-num parameter in the TiDB configuration file to modify the maximum number of Regions allowed in the SPLIT TABLE syntax
    • Return the Out Of Memory Quota error instead of disconnecting the link when a SQL execution exceeds the memory limit
    • Disallow dropping the AUTO_INCREMENT attribute of columns in TiDB to avoid misoperations. To drop this attribute, change the tidb_allow_remove_auto_inc system variable
  • Fixed issues
    • Fix the issue that the uncommented TiDB-specific syntax PRE_SPLIT_REGIONS might cause errors in the downstream database during data replication
    • Fix the issue in TiDB that the slow query logs are incorrect when getting the result of PREPARE + EXECUTE by using the cursor
    • Fix the issue in PD that adjacent small Regions cannot be merged
    • Fix the issue in TiKV that file descriptor leak in idle clusters might cause TiKV processes to exit abnormally when the processes run for a long time
  • Contributors

    Our thanks go to the following contributors from the community for helping this release:

    • sduzh
    • lizhenda

TiDB

  • SQL Optimizer
    • Fix the issue that invalid query ranges might be resulted when splitted by feedback #12170
    • Display the returned error of the SHOW STATS_BUCKETS statement in hexadecimal rather than return errors when the result contains invalid Keys #12094
    • Fix the issue that when a query contains the SLEEP function (for example, select 1 from (select sleep(1)) t;)), column pruning causes invalid sleep(1) during query #11953
    • Use index scan to lower IO when a query only concerns the number of columns rather than the table data #12112
    • Do not use any index when no index is specified in use index() to be compatible with MySQL #12100
    • Strictly limit the number of TopN records in the CMSketch statistics to fix the issue that the ANALYZE statement fails because the statement count exceeds TiDB’s limit on the size of a transaction #11914
    • Fix the error occurred when converting the subqueries contained in the Update statement #12483
    • Optimize execution performance of the select ... limit ... offset ... statement by pushing the Limit operator down to the IndexLookUpReader execution logic #12378
  • SQL Execution Engine
    • Print the SQL statement in the log when the PREPARED statement is incorrectly executed #12191
    • Support partition pruning when the UNIX_TIMESTAMP function is used to implement partitioning #12169
    • Fix the issue that no error is reported when AUTO_INCREMENT incorrectly allocates MAX int64 and MAX uint64 #12162
    • Add the WHERE clause in the SHOW TABLE … REGIONS and SHOW TABLE .. INDEX … REGIONS syntaxes #12123
    • Return the Out Of Memory Quota error instead of disconnecting the link when a SQL execution exceeds the memory limit #12127
    • Fix the issue that incorrect result is returned when JSON_UNQUOTE function handles JSON text #11955
    • Fix the issue that LAST INSERT ID is incorrect when assigning values to the AUTO_INCREMENT column in the first row (for example, insert into t (pk, c) values (1, 2), (NULL, 3)) #12002
    • Fix the issue that the GROUPBY parsing rule is incorrect in the PREPARE statement #12351
    • Fix the issue that the privilege check is incorrect in the point queries #12340
    • Fix the issue that the duration by sql_type for the PREPARE statement is not shown in the monitoring record #12331
    • Support using aliases for tables in the point queries (for example, select * from t tmp where a = "aa") #12282
    • Fix the error occurred when not handling negative values as unsigned when inserting negative numbers into BIT type columns #12423
    • Fix the incorrectly rounding of time (for example, 2019-09-11 11:17:47.999999666 should be rounded to 2019-09-11 11:17:48.) #12258
    • Refine the usage of expression blacklist (for example, < is equivalent to It.) #11975
    • Add the database prefix to the message of non-existing function error (for example, [expression:1305]FUNCTION test.std_samp does not exist) #12111
  • Server
    • Add the Prev_stmt field in slow query logs to output the previous statement when the last statement is COMMIT #12180
    • Optimize the output of slow query logs by deleting redundant fields #12144
    • Update the default value of txn-local-latches.enable to false to disable the default behavior of checking conflicts of local transactions in TiDB #12095
    • Replace the Index_ids field in TiDB slow query logs with Index_names to improve the usability of slow query logs #12061
    • Add the tidb_txn_mode system variable of global scope in TiDB and allow using pessimistic lock #12049
    • Add the Backoff field in the slow query logs to record the Backoff information in the commit phase of 2PC #12335
    • Fix the issue that the slow query logs are incorrect when getting the result of PREPARE + EXECUTE by using the cursor (for example, PREPARE stmt1FROM SELECT * FROM t WHERE a > ?; EXECUTE stmt1 USING @variable) #12392
    • Support tidb_enable_stmt_summary. When this feature is enabled, TiDB counts the SQL statements and the result can be queried by using the system table performance_schema.events_statements_summary_by_digest #12308
    • Adjust the level of some logs in tikv-client (for example, change the log level of batchRecvLoop fails from ERROR to INFO) #12383
  • DDL
    • Add the tidb_allow_remove_auto_inc variable. Dropping the AUTO INCREMENT attribute of the column is disabled by default #12145
    • Fix the issue that the uncommented TiDB-specific syntax PRE_SPLIT_REGIONS might cause errors in the downstream database during data replication #12120
    • Add the split-region-max-num variable in the configuration file so that the maximum allowable number of Regions is adjustable #12097
    • Support splitting a Region into multiple Regions and fix the timeout issue during Region scatterings #12343
    • Fix the issue that the drop index statement fails when the index that contains an auto_increment column referenced by two indexes #12344
  • Monitor
    • Add the connection_transient_failure_count monitoring metrics to count the number of gRPC connection errors in tikvclient #12093

TiKV

  • Raftstore
    • Fix the issue that Raftstore inaccurately counts the number of keys in empty Regions #5414
    • Support double linked list for RocksDB to improve the performance of reverse scan #5368
    • Support batch Region split command and empty split command to improve split performance #5470
  • Server
    • Fix the issue that the output format of the -V command is not consistent with the format of 2.X #5501
    • Upgrade Titan to the latest version in the 3.0 branch #5517
    • Upgrade grpcio to v0.4.5 #5523
    • Fix the issue of gRPC coredump and support shared memory to avoid OOM #5524
    • Fix the issue in TiKV that file descriptor leak in idle clusters might cause TiKV processes to exit abnormally when the processes run for a long time #5567
  • Storage
    • Support the txn_heart_beat API to make the pessimistic lock in TiDB consistent with that in MySQL as much as possible #5507
    • Fix the issue that the performance of point queries is low in some situations #5495 #5463

PD

  • Fix the issue that adjacent small Regions cannot be merged #1726
  • Fix the issue that the TLS enabling parameter in pd-ctl is invalid #1738
  • Fix the thread-safety issue that the PD operator is accidentally removed #1734
  • Support TLS for Region syncer #1739

Tools

  • TiDB Binlog
    • Add the worker-count and txn-batch configuration items in Reparo to control the recovery speed #746
    • Optimize the memory usage of Drainer to enhance the efficiency of simultaneous execution #737
  • TiDB Lightning
    • Fix the issue that re-importing data from checkpoint might cause TiDB Lightning to panic #237
    • Optimize the algorithm of AUTO_INCREMENT to reduce the risk of overflowing AUTO_INCREMENT columns #227

TiDB Ansible

  • Upgrade TiSpark to v2.2.0 #926
  • Update the default value of the TiDB configuration item pessimistic_txn to true #933
  • Add more system-level monitoring metrics to node_exporter #938
  • Add two perf tools iosnoop and funcslower in TiDB Ansible to better diagnose the cluster state #946
  • Replace the raw module to shell module to address the long waiting time in such situations as the password expires #949
  • Update the default value of the TiDB configuration item txn_local_latches to false
  • Optimize the monitoring metrics and alert rules of Grafana dashboard #962 #963 #969
  • Check the configuration file before the deployment and upgrade #934 #972
"TiDB 3.0.4 Release Notes" was last updated Oct 11 2019: releases: update format (#1583) (9b306b2)
Edit this page Request docs changes

What’s on this page

Product

  • TiDB
  • TiSpark
  • Roadmap

Docs

  • Quick Start
  • Best Practices
  • FAQ
  • TiDB Tools
  • Release Notes

Resources

  • Blog
  • Weekly
  • GitHub
  • TiDB Community

Company

  • About
  • Careers
  • News
  • Contact Us
  • Privacy Policy
  • Terms of Service

Connect

  • Twitter
  • LinkedIn
  • Reddit
  • Google Group
  • Stack Overflow

© 2019 PingCAP. All Rights Reserved.

中文