TiDB 3.0.8 发布,分布式 NewSQL 数据库
TiDB3.0.8现已发布,该版本更新内容如下: TiDB SQL 优化器 修复 SQL Binding 因为 cache 更新不及时,导致绑定计划错误的问题#13891 修复当 SQL 包含符号列表(类似于 “?, ?, ?” 这样的占位符)时,SQL Binding 可能失效的问题#14004 修复 SQL Binding 由于原 SQL 以;结尾而不能创建/删除的问题#14113 修复PhysicalUnionScan算子没有正确设置统计信息,导致查询计划可能选错的问题#14133 移除minAutoAnalyzeRatio约束使自动 analyze 更及时#14015 SQL 执行引擎 修复INSERT/REPLACE/UPDATE ... SET ... = DEFAULT语法会报错的问题,修复DEFAULT表达式与虚拟生成列配合使用会报错的问题#13682 修复INSERT语句在进行字符串类型到浮点类型转换时,可能会报错的问题#14011 修复HashAggExecutor 并发值未被正确初始化,导致聚合操作执行在一些情况下效率低的问题#13811 修复 group by item 被括号包含时执行报错的问题#13658 修复 TiDB 没有正确计算 group by item,导致某些情况下 OUTER JOIN 执行会报错的问题#14014 修复向 Range 分区表写入超过 Range 外的数据时,报错信息不准确的问题#14107 鉴于 MySQL 8 即将废弃PadCharToFullLength,revert PR#10124并撤销PadCharToFullLength的效果,以避免一些特殊情况下查询结果不符合预期#14157 修复ExplainExec中没有保证close()的调用而导致EXPLAIN ANALYZE时造成 goroutine 泄露的问题#14226 DDL 优化 “change column”/“modify column” 的输出的报错信息,让人更容易理解#13796 新增SPLIT PARTITION TABLE语法,支持分区表切分 Region 功能#13929 修复创建索引时,没有正确检查长度,导致索引长度超过 3072 字节没有报错的问题#13779 修复由于分区表添加索引时若花费时间过长,可能导致输出GC life time is shorter than transaction duration报错信息的问题#14132 修复在DROP COLUMN/MODIFY COLUMN/CHANGE COLUMN时没有检查外键导致执行SELECT * FROM information_schema.KEY_COLUMN_USAGE语句时发生 panic 的问题#14105 Server Statement Summary 功能改进: 新增大量的 SQL 指标字段,便于对 SQL 进行更详细的统计分析#14151,#14168 新增stmt-summary.refresh-interval参数用于控制定期将events_statements_summary_by_digest表中过期的数据移到events_statements_summary_by_digest_history表,默认间隔时间:30min#14161 新增events_statements_summary_by_digest_history表,保存从events_statements_summary_by_digest中过期的数据#14166 修复执行 RBAC 相关的内部 SQL 时,错误输出 binlog 的问题#13890 新增server-version配置项来控制修改 TiDB server 版本的功能#13906 新增通过 HTTP 接口恢复 TiDB binlog 写入功能#13892 将GRANT roles TO user所需要的权限由GrantPriv修改为ROLE_ADMIN或SUPER,以与 MySQL 保持一致#13932 当GRANT语句未指定 database 名时,TiDB 行为由使用当前 database 改为报错No database selected,与 MySQL 保持兼容#13784 修改REVOKE语句执行权限从SuperPriv改成用户只需要有对应 Schema 的权限,就可以执行REVOKE语句,与 MySQL 保持一致#13306 修复GRANT ALL语法在没有WITH GRANT OPTION时,错误地将GrantPriv授权给目标用户的问题#13943 修复LoadDataInfo中调用addRecord报错时,报错信息不包含导致LOAD DATA语句行为不正确信息的问题#13980 修复因查询中多个 SQL 语句共用同一个StartTime导致输出错误的慢查询信息的问题#13898 修复batchClient处理大事务时可能造成内存泄露的问题#14032 修复system_time_zone固定显示为CST的问题,现在 TiDB 的system_time_zone会从mysql.tidb表中的systemTZ获取#14086 修复GRANT ALL语法授予权限不完整(例如Lock_tables_priv)的问题#14092 修复Priv_create_user权限不能CREATE ROLE和DROP ROLE的问题#14088 将ErrInvalidFieldSize的错误码从1105(Unknow Error)改成3013#13737 新增SHUTDOWN命令用于停止 TiDB Server,并新增ShutdownPriv权限#14104 修复DROP ROLE语句的原子性问题,避免语句执行失败时,一些 ROLE 仍然被非预期地删除#14130 修复 3.0 以下版本升级到 3.0 时,tidb_enable_window_function在SHOW VARIABLE语句的查询结果错误输出 1 的问题,修复后输出 0#14131 修复 TiKV 节点下线时,由于gcworker持续重试导致可能出现 goroutine 泄露的问题#14106 在慢日志中记录 Binlog 的Prewrite的时间,提升问题追查的易用性#14138 tidb_enable_table_partition变量支持 GLOBAL SCOPE 作用域#14091 修复新增权限时未正确将新增的权限赋予对应的用户导致用户权限可能缺失或者被误添加的问题#14178 修复当 TiKV 链接断开时,由于rpcClient不会关闭而导致CheckStreamTimeoutLoopgoroutine 会泄露的问题#14227 支持基于证书的身份验证(使用文档)#13955 Transaction 创建新集群时,tidb_txn_mode变量的默认值由""改为"pessimistic"#14171 修复悲观事务模式,事务重试时单条语句的等锁时间没有被重置导致等锁时间过长的问题#13990 修复悲观事务模式,因对没有修改的数据未加锁导致可能读到不正确数据的问题#14050 修复 mocktikv 中 prewrite 时,没有区分事务类型,导致重复的 insert value 约束检查#14175 修复session.TxnState状态为Invalid时,事务没有被正确处理导致 panic 的问题#13988 修复 mocktikv 中ErrConfclit结构未包含ConflictCommitTS的问题#14080 修复 TiDB 在 Resolve Lock 之后,没有正确处理锁超时检查导致事务卡住的问题#14083 Monitor LockKeys新增pessimistic_lock_keys_duration监控#14194 TiKV Coprocessor 修改 Coprocessor 遇到错误时输出日志的级别从error改成warn#6051 修改统计信息采样数据的更新行为从直接更行改成先删除再插入,更新行为与 tidb-server 保持一致#6069 Raftstore 修复因重复向peerfsm发送 destory 消息,peerfsm被多次销毁导致 panic 的问题#6297 split-region-on-table默认值由true改成false,默认关闭按 table 切分 Region 的功能#6253 Engine 修复极端条件下因 RocksDB 迭代器错误未正确处理导致可能返回空数据的问题#6326 事务 修复悲观锁因锁未被正确清理导致 Key 无法写入数据,且出现 GC 卡住的问题#6354 优化悲观锁等锁机制,提升锁冲突严重场景的性能#6296 将内存分配库的默认值由tikv_alloc/default改成jemalloc#6206 PD Client 新增通过context创建新 client,创建新 client 时可设置超时时间#1994 新增创建KeepAlive连接功能#2035 优化/api/v1/regionsAPI 的性能#1986 修复删除tombstone状态的 Store 可能会导致 panic 的隐患#2038 修复从磁盘加载 Region 信息时错误的将范围有重叠的 Region 删除的问题#2011,#2040 将 etcd 版本从 3.4.0 升级到 3.4.3 稳定版本,注意升级后只能通过 pd-recover 工具降级#2058 Tools TiDB Binlog 修复 Pump 由于没有收到 DDL 的 commit binlog 导致 binlog 被忽略的问题#853 TiDB Ansible 回滚被精简的配置项#1053 优化滚动升级时 TiDB 版本检查的逻辑#1056 TiSpark 版本升级到 2.1.8#1061 修复 Grafana 监控上 PD 页面 Role 监控项显示不正确的问题#1065 优化 Grafana 监控上 TiKV Detail 页面上Thread Voluntary Context Switches和Thread Nonvoluntary Context Switches监控项#1071 详细信息: https://pingcap.com/docs-cn/stable/releases/3.0.8/ https://github.com/pingcap/tidb/releases/tag/v3.0.8