- 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
- Overview
- Integration Scenarios
- 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)
- Point-in-Time Recovery
- 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 TABLE SET TIFLASH MODE
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
SAVEPOINT
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
VARIABLES_INFO
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
- Monitoring Page
- 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
- TiDB Installation Packages
- v6.2
- 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 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’sSHOW TABLE REGIONS
syntax - Add the
worker-count
andtxn-batch
configuration items in Reparo to control the recovery speed
- Add the
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
andfuncslower
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
tofalse
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 withIndex_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 theSPLIT 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 thetidb_allow_remove_auto_inc
system variable
- Update the default value of
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
- Fix the issue that the uncommented TiDB-specific syntax
Contributors
Our thanks go to the following contributors from the community for helping this release:
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 invalidsleep(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 theCMSketch
statistics to fix the issue that theANALYZE
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 theIndexLookUpReader
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 allocatesMAX int64
andMAX uint64
#12162 - Add the
WHERE
clause in theSHOW TABLE … REGIONS
andSHOW 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 theAUTO_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 thePREPARE
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 thePREPARE
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 to2019-09-11 11:17:48
.) #12258 - Refine the usage of expression blocklist (for example,
<
is equivalent toIt
.) #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
- Print the SQL statement in the log when the
- Server
- Add the
Prev_stmt
field in slow query logs to output the previous statement when the last statement isCOMMIT
#12180 - Optimize the output of slow query logs by deleting redundant fields #12144
- Update the default value of
txn-local-latches.enable
tofalse
to disable the default behavior of checking conflicts of local transactions in TiDB #12095 - Replace the
Index_ids
field in TiDB slow query logs withIndex_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 tableperformance_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
fromERROR
toINFO
) #12383
- Add the
- DDL
- Add the
tidb_allow_remove_auto_inc
variable. Dropping theAUTO 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 anAUTO_INCREMENT
column referenced by two indexes #12344
- Add the
- Monitor
- Add the
connection_transient_failure_count
monitoring metrics to count the number of gRPC connection errors intikvclient
#12093
- Add the
TiKV
- Raftstore
- 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
- Fix the issue that the output format of the
- Storage
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
- TiDB Lightning
TiDB Ansible
- Upgrade TiSpark to v2.2.0 #926
- Update the default value of the TiDB configuration item
pessimistic_txn
totrue
#933 - Add more system-level monitoring metrics to
node_exporter
#938 - Add two perf tools
iosnoop
andfuncslower
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
tofalse
- Optimize the monitoring metrics and alert rules of Grafana dashboard #962 #963 #969
- Check the configuration file before the deployment and upgrade #934 #972
What’s on this page
Was this page helpful?