首页 文章 精选 留言 我的

精选列表

搜索[数据库连接池],共10000篇文章
优秀的个人博客,低调大师

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

优秀的个人博客,低调大师

数据库中间件分片算法之hash

前言 夜深人静的时候,打开云音乐,点上一曲攀登,带上真无线蓝牙耳机,瞬间燃到爆,键盘打字如飞倦意全无。 分片规则 这几天有人问我,dble和MyCat到底有什么不同。其实dble作为MyCAT的同门,吸收了MyCat的精华,同时也相应的做了一些减法。只支持MySQL显得更加的纯粹。所以选择对比学习两者我觉得挺好。 前面我们学习了schema.xml文件的配置,我们能独立的把逻辑库和逻辑表搭建起来,让数据表跟随我们的定义规则(取模)进行分布。今天我们介绍具体的分片算法。dble相对于mycat来说,是做了一些减法的。比如一致hash算法就没有,而是使用了jumpstringhash代替了一致性hash。具体原因可以参考文章dble 沿用 jumpstringhash,移除 Mycat 一致性 hash 原因 hash分区算法 stringhash分区算法 enum分区算法 numberrange分区算法 patternrange分区算法 date分区算法 jumpstringhash算法 HASH分区算法 Hash分区算法是一种比较典型而且常用的算法。要使用HASH分区算法需要在rule.xml中定义两个部分。 分区规则定义 如下所示,使用tableRule标签定义,name对应的是规则的名字,而rule标签中的columns则对应的分片字段,这个字段必须和表中的字段一致。algorithm则代表了执行分片函数的名字。 <tableRule name="auto-sharding-long"> <rule> <columns>id</columns> <algorithm>rang-long</algorithm> </rule> </tableRule> 分区算法定义 如下所示,使用function标签定义分区算法,name代表算法的名字,算法的名字要和上面的tableRule中的标签相对应。class:指定分区算法实现类。property指定了对应分区算法的参数。不同的算法参数不同。 <function name="rang-long" class="com.actiontech.dble.route.function.AutoPartitionByLong"> <property name="mapFile">auto-sharding-long.txt</property> ... </function> partitionCount:指定分区的区间数,具体为 C1 +C2 + ... + Cn partitionLength:指定各区间长度,具体区间划分为 [0, L1), [L1, 2L1), ..., [(C1-1)L1, C1L1), [C1L1, C1L1+L2), [C1L1+L2, C1L1+2L2), ... 其中,每一个区间对应一个数据节点。 测试Hash分区算法 1.在启动的时候,两个数组点乘做运算,得到取模数。 2.两个数组进行叉乘,得出物理分区表。 3.根据where条件的值来落入实际分片 select * from shareding_key = 999; 先根据分片键取出999,按照公式1的计算结果除取模,然后得到的值落到2计算出来的分片中。 4.举个简单的例子: <property name="partitionCount">2,3</property> <property name="partitionLength">100,50</property> 根据公式1 也就是传进来的值需要对350取模。 根据公式2,物理分区为 999对350取模,正好是299。落在250-300这个区间里面。也就是第4个区间。 接下来我们实际来测试一下,我们在rule.xml中设置如下: <tableRule name="rule_hash"> <rule> <columns>id</columns> <algorithm>func_hash_test</algorithm> </rule> </tableRule> <function name="func_hash_test" class="Hash"> <property name="partitionCount">2,3</property> <property name="partitionLength">100,50</property> </function> 我们通过公式2算出有5个分片。所以在schema.xml中设置table属性如下: <table name="hash_test" primaryKey="id" rule="rule_hash" dataNode="dn1,dn2,dn3,dn4,dn5"/> 5.创建表测试 我们先使用shell创建1000行数据,在创建表,通过load data语法将我们shell产生的文件进行导入。 for i in {1..1000} do echo $i'|name'$[i]'' >>a1.txt done 请原谅我作为一个GEEK,把桌面和终端完美结合成二次元是标配。 这里可以看到我们查询999这个数据,会自动到dn4这个分片上进行查询。再比如我们查500,500对350取模是150,150是落在第二个分区里面的。 6.另一个例子 <property name="partitionCount">2</property> <property name="partitionLength">1000</property> 此时C _L=2_1000=2000,将对2000进行取模。 同时将划分如下的分区: 注意事项 M不能大于2880。2880的原因是这样的:2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 16, 18, 20, 24, 30, 32, 36, 40, 45, 48, 60, 64, 72, 80, 90, 96, 120, 144, 160, 180, 192, 240, 288, 320, 360, 480, 576, 720, 960, 1440是2880的约数,这样预分片扩容方便。 N必须要等于schema.xml中使用该分区算法的逻辑表的dataNode属性指定的DataNode数量之和,比如我们上面这个算法是5个分区,但是如果你在逻辑表的dataNode属性中设置分区个数小于5,dataNode="dn1,dn2,dn3,dn4",则dble就会报错。partition size : 5 > table datanode size : 4 please make sure table datanode size = function partition size $C\_n$和$L\_n$的个数必须相等。 分区字段必须为整型字段,如果是其他类型,要求值可转化为数字。 当partitionLength为1时,hash分区算法退化为求模算法,M及N均为partitionCount的值。 NULL作为分片列的值的时候数据的结果恒落在0号节点(第一个节点上),建议最好不要让这种情况出现,强制设置分片键为not null。 后记 今天学习了分片算法Hash。后续将继续分享其他的算法。谢谢支持!

优秀的个人博客,低调大师

TiDB 2.1.18 发布,分布式 NewSQL 数据库

TiDB2.1.18已经发布了,该版本更新内容如下: TiDB SQL 优化器 修复 Feedback 切分查询范围出错的问题#12172 修复点查中权限检查不正确的问题#12341 将 Limit 算子下推到IndexLookUpReader执行逻辑中,优化select ... limit ... offset ...的执行性能#12380 支持在ORDER BY、GROUP BY和LIMIT OFFSET中使用参数#12514 修复 partition 表上的 IndexJoin 返回错误结果的问题#12713 修复 TiDB 中str_to_date函数在日期字符串和格式化字符串不匹配的情况下,返回结果与 MySQL 不一致的问题#12757 修复当查询条件中包含 cast 函数时 outer join 被错误转化为 inner join 的问题#12791 修复 AntiSemiJoin 的 join 条件中错误的表达式传递#12800 SQL 执行引擎 修复时间取整不正确的问题 (如 2019-09-11 11:17:47.999999666 应该被取整到 2019-09-11 11:17:48)#12259 修复PREPARE语句类型没有记录在监控中的问题#12329 修复FROM_UNIXTIME在检查 NULL 值时 panic 的错误#12572 修复YEAR类型数据插入非法年份时,结果为NULL而不是0000的兼容性问题#12744 改进 AutoIncrement 列隐式分配时的行为,与 MySQL 自增锁的默认模式 (“consecutive” lock mode) 保持一致:对于单行 Insert 语句的多个自增 AutoIncrement ID 的隐式分配,TiDB 保证分配值的连续性。该改进保证 JDBCgetGeneratedKeys()方法在任意场景下都能得到正确的结果。#12619 修复当 HashAgg 作为 Apply 子节点时查询 hang 住的问题#12769 修复逻辑表达式 AND / OR 在涉及类型转换时返回错误结果的问题#12813 Server 修复KILL TIDB QUERY语法对SLEEP()语句无效的问题#12159 修复 AUTO INCREMENT 分配 MAX int64 和 MAX uint64 没有报错的问题#12210 修复日志级别设置为ERROR时,慢日志不会被记录的问题#12373 将缓存 100 个 Schema 变更相关的表信息调整成 1024 个,且支持通过tidb_max_delta_schema_count系统变量修改#12515 将 SQL 的统计方式开始时间由“开始执行”改为“开始编译”,使得 SQL 性能统计更加准确#12638 在 TiDB 日志中添加set session autocommit的记录#12568 将 SQL 的开始时间记录在SessionVars中,避免计划执行时,该时间被重置#12676 在Order By/Group By/Limit Offset字句中支持?占位符#12514 慢日志中添加Prev_stmt字段,用于最后一条语句是COMMIT时输出前一条语句#12724 当一个显式提交的事务COMMIT时出错,在日志中记录COMMIT前一条语句#12747 优化在 TiDB Server 执行 SQL 时,对前一条语句的保存方式以提升性能#12751 修复skip-grant-table=true时,FLUSH PRIVILEGES语句导致系统 Panic 的问题#12816 将 AutoID 的最小申请步长从 1000 增加为 30000,避免短时间大量写入时频繁请求 AutoID 造成性能瓶颈#12891 修复 Prepared 语句在 TiDB 发生 panic 时错误日志中未打印出错 SQL 的问题#12954 修复 COM_STMT_FETCH 慢日志时间记录和 MySQL 不一致问题#12953 当遇到写冲突时,在报错信息中添加错误码,以方便对冲突原因进行诊断#12878 DDL 为避免误操作,TiDB 默认不再允许删除列的AUTO INCREMENT属性,当确实需要删除时,请更改系统变量tidb_allow_remove_auto_inc;相关文档请见:TiDB 专用系统变量和语法#12146 支持 Create Table 语句中建唯一索引时带多个 Unique#12469 修复CreateTable语句中指定外键约束时,外键表在没有指定 Database 时未能使用主表的 Database 导致报错的问题#12678 修复ADMIN CANCEL DDL JOBS时报invalid list index错的问题#12681 Monitor Backoff 监控添加类型,且补充之前没有统计到的 Backoff,比如 commit 时遇到的 Backoff#12326 添加统计 Add Index 操作进度的监控#12389 PD 修复 pd-ctl--help命令输出内容#1772 Tools TiDB Binlog 修复ALTER DATABASE相关 DDL 会导致 Drainer 异常退出的问题#770 支持对 Commit binlog 查询事务状态信息,提升同步效率#761 修复当 Drainer 的start_ts大于 Pump 中最大的commit_ts时候有可能引起 Pump panic 的问题#759 TiDB Ansible TiDB Binlog 增加 queue size 和 query histogram 监控项#952 更新 TiDB 告警表达式#961 新增配置文件检查功能,部署或者更新前会检查配置是否合理#973 TiDB 新增加索引速度监控项#987 更新 TiDB Binlog 监控 Dashboard,兼容 4.6.3 版本的 Grafana#993 详细信息: https://github.com/pingcap/tidb/releases/tag/v2.1.18 https://pingcap.com/docs-cn/stable/releases/2.1.18/

优秀的个人博客,低调大师

TiDB 3.0.7 发布,分布式 NewSQL 数据库

距离TiDB 3.0.6 发布没多久,目前,TiDB3.0.7也已发布,该版本的一些更新内容如下: SQL优化器 修复 Natural Outer Join 和 Outer Join 使用USING语法时,not null标记没有被重置导致结果错误的问题#13739 修复更新统计信息时可能存在数据竞争,导致统计信息不准确的问题#13687 SQL执行引擎 修复builtinIntervalRealSig的实现中,binSearch方法不会返回 error,导致最终结果可能不正确的问题#13767 修复整型数据被转换为无符号浮点/Decimal 类型时,精度可能丢失造成数据错误的问题#13755 服务器 修复 TiDB server 本地时间落后于 TSO 时间时,可能造成锁的 TTL 过大的问题#13868 修复从字符串解析日期时,由于使用本地时区 (gotime.Local) 而导致解析结果的时区不正确的问题#13793 TiKV 判断死锁检测服务的第一个 Region 时,加上 Region 合法检测,防止信息不完整的 Region 导致误判#6110 修复潜在的内存泄漏问题#6128 详细信息: https://pingcap.com/docs-cn/stable/releases/3.0.7/ https://github.com/pingcap/tidb/releases/tag/v3.0.7

优秀的个人博客,低调大师

TiDB 3.0.5 发布,分布式 NewSQL 数据库

TiDB 3.0.5已经发布,内容如下: SQL 优化器 支持对 Window Functions 进行边界检查#12404 修复 partition 表上的IndexJoin返回错误结果的问题#12712 修复外连接 Apply 算子上层的ifnull函数返回错误结果的问题#12694 修复当UPDATE的where条件中包含子查询时更新失败的问题#12597 修复当查询条件中包含cast函数时 outer join 被错误转化为 inner join 的问题#12790 修复AntiSemiJoin的 join 条件中错误的表达式传递#12799 修复初始化统计信息时由于浅拷贝造成的统计信息出错问题#12817 修复 TiDB 中str_to_date函数在日期字符串和格式化字符串不匹配的情况下,返回结果与 MySQL 不一致的问题#12725 SQL 执行引擎 修复在from_unixtime函数处理 null 时发生 panic 的问题#12551 修复 Admin Cancel DDL jobs 时报invalid list index错的问题#12671 修复使用 Window Functions 时发生数组越界的问题#12660 改进AutoIncrement列隐式分配时的行为,与 MySQL 自增锁的默认模式 (“consecutive” lock mode) 保持一致:对于单行 Insert 语句的多个自增AutoIncrementID 的隐式分配,TiDB 保证分配值的连续性。该改进保证 JDBCgetGeneratedKeys()方法在任意场景下都能得到正确的结果。#12602 修复当HashAgg作为 Apply 子节点时查询 hang 住的问题#12766 修复逻辑表达式AND或OR在涉及类型转换时返回错误结果的问题#12811 Server 实现修改事务 TTL 的接口函数,以助后续支持大事务#12397 支持将事务的 TTL 按需延长(最长可到 10min),用于支持悲观事务#12579 将 TiDB 缓存 schema 变更及相关表信息的次数从 100 调整为 1024,且支持通过tidb_max_delta_schema_count系统变量修改#12502 更新了kvrpc.Cleanup协议的行为,不再清理未超时事务的锁#12417 支持将 Partition 表信息记录到information_schema.tables表#12631 支持通过region-cache-ttl配置修改 Region Cache 的 TTL#12683 支持在慢日志中打印执行计划压缩编码后的信息,此功能默认开启,可以通过slow-log-plan配置或者tidb_record_plan_in_slow_log变量进行开关控制。另外支持tidb_decode_plan函数将慢日志中的执行计划列编码信息解析成执行计划信息。#12808 在information_schema.processlist表中支持显示内存使用信息#12801 修复 TiKV Client 判断连接空闲时可能出错并出现非预期的告警的问题#12846 修复tikvSnapshot没有正确对BatchGet()的 KV 结果进行缓存,导致INSERT IGNORE语句性能有所下降的问题#12872 修复了因建立到部分 KV 服务的连接较慢最终导致 TiDB 响应速度相对变慢的情况#12814 DDL 修复Create Table操作对 Set 列不能正确设置 Int 类型默认值的问题#12267 支持Create Table语句中建唯一索引时带多个 Unique#12463 修复使用Alter Table添加 Bit 类型列时,对存在的行填充此列的默认值可能出错的问题#12489 修复 Range 分区表以 Date 或 Datetime 类型列作为分区键时,添加分区失败的问题#12815 对于 Date 或 Datetime 类型列作为分区键的 Range 分区表,在建表或者添加分区时,支持检查分区类型与分区键类型的统一性#12792 在创建 Range 分区表时,添加对 Unique Key 列集合需大于等于分区列集合的检查#12718 Monitor 添加统计 Commit 与 Rollback 操作的监控到Transaction OPS面板#12505 添加统计Add Index操作进度的监控#12390 TiKV Storage 悲观事务新特性:事务 Cleanup 接口支持只清理 TTL 已经过期的锁#5589 修复事务 Primary key 的 Rollback 被折叠的问题#5646,#5671 修复悲观锁下点查可能返回历史旧版本的问题#5634 Raftstore 减少 Raftstore 消息的 flush 操作,以提升性能,减少 CPU 占用#5617 优化获取 Region 的大小和 key 个数估计值的开销,减少心跳的开销,降低 CPU 占用#5620 修复 Raftstore 取到非法数据时打印错误日志并 panic 的问题#5643 Engine 打开 RocksDBforce_consistency_checks,提高数据安全性#5662 修复 Titan 并发 flush 情况下有可能造成数据丢失的问题#5672 更新 rust-rocksdb 版本以避开 intra-L0 compaction 导致 TiKV 崩溃重启的问题#5710 PD 提高 Region 占用空间的精度#1782 修复--help命令输出内容#1763 修复 TLS 开启后 http 请求重定向失败的问题#1777 修复 pd-ctl 使用store shows limit命令 panic 的问题#1808 提高 label 监控可读性以及当 leader 发生切换后重置原 leader 的监控数据,防止误报#1815 Tools TiDB Binlog 修复ALTER DATABASE相关 DDL 会导致 Drainer 异常退出的问题#769 支持对 Commit binlog 查询事务状态信息,提升同步效率#757 修复当 Drainer 的start_ts大于 Pump 中最大的commit_ts时,有可能引起 Pump panic 的问题#758 TiDB Lightning 整合 Loader 全量逻辑导入功能,支持配置 backend 模式#221 TiDB Ansible 增加 TiDB 添加索引速度的监控#986 精简配置文件内容,移除不需要用户配置的参数#1043c,#998 修复 performance read 和 performance write 监控表达式错误的问题#e90e7 更新 raftstore CPU 使用率的监控显示方式以及 raftstore CPU 使用率的告警规则#992 更新Overview监控面板中 TiKV 的 CPU 监控项,过滤掉多余的监控内容#1001 来源: https://pingcap.com/docs-cn/v3.0/releases/3.0.5/

优秀的个人博客,低调大师

TiDB 2.1.17 发布,分布式 NewSQL 数据库

TiDB 2.1.17 已经发布,更新内容如下: 新特性 TiDB 的SHOW TABLE REGIONS语法新增WHERE条件子句 TiKV、PD 新增config-check功能,用于配置项检查 pd-ctl 新增remove-tomestone命令,支持清理 tombstone store 记录 Reparo 新增worker-count和txn-batch配置项,用于控制恢复速率 改进提升 PD 优化调度流程,支持主动下发调度 TiKV 优化启动流程,减少重启节点带来的抖动 行为变更 TiDB 慢日志中的start ts由最后一次重试的时间改为第一次执行的时间 TiDB 慢日志中的Index_ids字段替换为Index_names字段,提升慢日志易用性 TiDB 配置文件中添加split-region-max-num参数,用于调整SPLIT TABLE语法允许的最大 Region 数量,默认配置下,允许的数量由 1,000 增加至 10,000 TiDB SQL 优化器 修复EvalSubquery在构建Executor出现错误时,错误信息没有被正确返回的问题#11811 修复 Index Lookup Join 中,外表的行数大于一个 batch 时,查询的结果可能不正确的问题;扩大 Index Lookup Join 的作用范围:可以使用UnionScan作为IndexJoin的子节点#11843 针对统计信息的反馈过程可能产生失效 Key 的情况,SHOW STAT_BUCKETS语句现在增加了失效 Key 的显示,例如:invalid encoded key flag 252#12098 SQL 执行引擎 修复CAST函数在进行数值类型转换时,首先将数值转换为UINT导致一些结果不正确的问题(例如,select cast(13835058000000000000 as double))#11712 修复DIV运算的被除数为DECIMAL类型且运算含有负数时,运算结果可能不正确的问题#11812 添加ConvertStrToIntStrict函数,修复执行SELECT/EXPLAIN语句时,一些字符串转换INT类型结果与 MySQL 不兼容的问题#11892 修复使用EXPLAIN ... FOR CONNECTION语法时,stmtCtx没有正确设置导致Explain结果可能不正确的问题#11978 修复unaryMinus函数,当 Int 结果溢出时,返回结果类型没有为 Decimal 导致与 MySQL 不兼容的问题#11990 修复LOAD DATA语句执行时,计数顺序导致的last_insert_id()可能不正确的问题#11994 修复用户显式、隐式混合写入自增列数据时,last_insert_id()可能不正确的问题#12001 修复一个JSON_UNQUOTE函数兼容性问题:只有在双引号(")内的值需要 Unquote,例如SELECT JSON_UNQUOTE("\\\\")应当为 “\\“(不进行 Unquote)#12096 Server TiDB 事务重试时,记录在慢日志中的start ts由最后一次重试的时间改为第一次执行的时间#11878 在LockResolver中添加事务的 Key 数量:当 Key 数量较少时,可以避免对整个 Region 的 Scan 操作,减小清锁的代价#11889 修复慢日志中,succ字段值可能不正确的问题#11886 将慢日志中的Index_ids字段替换为Index_names字段,提升慢日志易用性#12063 修复Duration内容中包含-时(例如select time(‘--’)),TiDB 解析为 EOF Error 导致连接断开的错误#11910 改进RegionCache:当一个 Region 失效时,它将会更快地从RegionCache中移除,减少向该 Region 发送请求的个数#11931 修复oom-action = "cancel"时,当Insert Into … Select语句发生 OOM,OOM Panic 没有被正确处理而导致连接断开的问题#12126 DDL 为tikvSnapshot添加逆序扫描接口用于高效地查询 DDL History Job,使用该接口后ADMIN SHOW DDL JOBS的执行时间有明显降低#11789 改进CREATE TABLE ... PRE_SPLIT_REGION的语义:当指定PRE_SPLIT_REGION = N时,将预切分的 Region 个数由 2^(N-1) 改为 2^N#11797 根据线上负载与 Add Index 相互影响测试,调小 Add Index 后台工作线程的默认参数以避免对线上负载造成较大影响#11875 改进SPLIT TABLE语法的行为:当使用SPLIT TABLE ... REGIONS N对 Region 切分时,会生成 N 个数据 Region 和 1 个索引 Region#11929 在配置文件中添加split-region-max-num参数,使得SPLIT TABLE语法允许的最大 Region 数量可调整,该参数默认值10000#12080 修复写 binlog 时,CREATE TABLE语句中PRE_SPLIT_REGIONS部分没有被注释,导致语句不能被下游 MySQL 解析的问题#12121 SHOW TABLE … REGIONS和SHOW TABLE .. INDEX … REGIONS语法新增WHERE条件子句#12124 Monitor 增加监控指标connection_transient_failure_count,用于统计tikvclient的 gRPC 连接错误数量#12092 TiKV 解决某些情况下 Region 内 key 个数统计不准的问题#5415 TiKV 新增config-check选项,用于检查 TiKV 配置项是否合法#5391 优化启动流程,减少重启节点带来的抖动#5277 优化某些情况下解锁的流程,加速事务解锁#5339 优化get_txn_commit_info的流程,加速事务提交#5062 简化 Raft 相关的 log#5425 解决在某些情况下 TiKV 异常退出的问题#5441 PD PD 新增config-check选项,用于检查 PD 配置项是否合法#1725 pd-ctl 新增remove-tomestone命令,支持清理 tombstone store 记录#1705 支持主动下发 Operator,加快调度速度#1686 Tools TiDB Binlog Reparo 新增worker-count和txn-batch配置项,用于控制恢复速率#746 Drainer 优化内存使用,提升同步执行效率#735 Pump 修复有时候无法正常下线的 bug#739 Pump 优化 LevelDB 处理逻辑,提升 GC 执行效率#720 TiDB Lightning 修复从 checkpoint 点重新导入可能会导致 tidb-lightning 崩溃的 bug#239 TiDB Ansible 更新 Spark 版本为 2.4.3,同时更新 TiSpark 为兼容该 Spark 的 2.2.0 版本#914,#919 修复了当远程机器密码过期时长时间连接等待的问题#937,#948 发布说明:https://pingcap.com/docs-cn/v3.0/releases/2.1.17/

优秀的个人博客,低调大师

SpringBoot如何使用JPA操作数据库

SpringDataJPA是Spring基于ORM框架、JPA规范的基础上封装的一套JPA应用框架,底层使用了Hibernate的JPA技术实现,可使开发者用极简的代码即可实现对数据的访问和操作。它提供了包括增删改查等在内的常用功能,且易于扩展!学习并使用SpringDataJPA可以极大提高开发效率!让我们解脱DAO层的操作,基本上所有CRUD都可以依赖于它来实现 本文将介绍在SpringBoot中的使用案例和原理分析 一、SpringBoot使用 1、导入依赖 swagger和common为附加包,不使用的话可以不需要导的哈 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-b

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册