- 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 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_digestsystem table to troubleshoot performance issues at the SQL level - Add the
WHEREclause in TiDB’sSHOW TABLE REGIONSsyntax - Add the
worker-countandtxn-batchconfiguration 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
iosnoopandfuncslowerin 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.enabletofalseto disable the default behavior of checking conflicts of local transactions in TiDB - Add the
tidb_txn_modesystem 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_idsfield in TiDB slow query logs withIndex_namesto improve the usability of slow query logs - Add the
split-region-max-numparameter in the TiDB configuration file to modify the maximum number of Regions allowed in theSPLIT TABLEsyntax - Return the
Out Of Memory Quotaerror instead of disconnecting the link when a SQL execution exceeds the memory limit - Disallow dropping the
AUTO_INCREMENTattribute of columns in TiDB to avoid misoperations. To drop this attribute, change thetidb_allow_remove_auto_incsystem variable
- Update the default value of
Fixed issues
- Fix the issue that the uncommented TiDB-specific syntax
PRE_SPLIT_REGIONSmight 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+EXECUTEby 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_BUCKETSstatement in hexadecimal rather than return errors when the result contains invalid Keys #12094 - Fix the issue that when a query contains the
SLEEPfunction (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
TopNrecords in theCMSketchstatistics to fix the issue that theANALYZEstatement 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
Updatestatement #12483 - Optimize execution performance of the
select ... limit ... offset ...statement by pushing the Limit operator down to theIndexLookUpReaderexecution logic #12378
- SQL Execution Engine
- Print the SQL statement in the log when the
PREPAREDstatement is incorrectly executed #12191 - Support partition pruning when the
UNIX_TIMESTAMPfunction is used to implement partitioning #12169 - Fix the issue that no error is reported when
AUTO_INCREMENTincorrectly allocatesMAX int64andMAX uint64#12162 - Add the
WHEREclause in theSHOW TABLE … REGIONSandSHOW TABLE .. INDEX … REGIONSsyntaxes #12123 - Return the
Out Of Memory Quotaerror instead of disconnecting the link when a SQL execution exceeds the memory limit #12127 - Fix the issue that incorrect result is returned when
JSON_UNQUOTEfunction handles JSON text #11955 - Fix the issue that
LAST INSERT IDis incorrect when assigning values to theAUTO_INCREMENTcolumn in the first row (for example,insert into t (pk, c) values (1, 2), (NULL, 3)) #12002 - Fix the issue that the
GROUPBYparsing rule is incorrect in thePREPAREstatement #12351 - Fix the issue that the privilege check is incorrect in the point queries #12340
- Fix the issue that the duration by
sql_typefor thePREPAREstatement 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.999999666should 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_stmtfield 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.enabletofalseto disable the default behavior of checking conflicts of local transactions in TiDB #12095 - Replace the
Index_idsfield in TiDB slow query logs withIndex_namesto improve the usability of slow query logs #12061 - Add the
tidb_txn_modesystem variable of global scope in TiDB and allow using pessimistic lock #12049 - Add the
Backofffield 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+EXECUTEby 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 failsfromERRORtoINFO) #12383
- Add the
- DDL
- Add the
tidb_allow_remove_auto_incvariable. Dropping theAUTO INCREMENTattribute of the column is disabled by default #12145 - Fix the issue that the uncommented TiDB-specific syntax
PRE_SPLIT_REGIONSmight cause errors in the downstream database during data replication #12120 - Add the
split-region-max-numvariable 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 indexstatement fails when the index that contains anAUTO_INCREMENTcolumn referenced by two indexes #12344
- Add the
- Monitor
- Add the
connection_transient_failure_countmonitoring 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
-Vcommand 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-ctlis 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_txntotrue#933 - Add more system-level monitoring metrics to
node_exporter#938 - Add two perf tools
iosnoopandfuncslowerin 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_latchestofalse - 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?