PostgreSQL 开发最佳实践目录 • 规约的重要性 • 命名规约 • 设计规约 • 管理规约 • 稳定性与性能建议 • 云数据库使用建议 2016Postgres中国用户大会 规约的重要性 2016Postgres中国用户大会 目录 • 规约的重要性 • 命名规约 • 设计规约 • 管理规约 • 稳定性与性能建议 • 云数据库使用建议 2016Postgres中国用户大会 命名规约 ??"; 使用有意义的对象名; 使用小写字母,下划线,数字; 2016Postgres中国用户大会 目录 • 规约的重要性 • 命名规约 • 设计规约 • 管理规约 • 稳定性与性能建议 • 云数据库使用建议 2016Postgres中国用户大会 设计规约 • 返回多行 • select * from tbl where xxx=? order by yyy big table 问题(备份、恢复、创建索引、索引深度),分区 2016Postgres中国用户大会 目录 • 规约的重要性 • 命名规约 • 设计规约 • 管理规约 • 稳定性与性能建议 • 云数据库使用建议 2016Postgres中国用户大会 管理规约 • begin; set local lock_timeout = '10s'; -- DDL query;0 码力 | 16 页 | 381.36 KB | 1 年前3
TiDB v8.1 中文手册类型,用于更高效地处理大批量 DML 任务,同时提供事务保证并减轻 OOM 问题。 �→ 该功能与用于数据加载的导入、加载和恢复操作不同。增强在有大量表时缓存 schema 信息的稳定性(实验特性,从 v8.0.0 开始引入) 对于使用 TiDB 作为多租户应用程序记录系统的 SaaS 公司,经常需要存储大量的表。在以前的版本中, �→ 尽管支持处理百万级或更 le_auto_analyze_priority_queue-从-v800-版本开始引入">优先队列 �→ ,使流程更加流畅,并在大量表的情况下提高稳定性。 稳定性与高可用 全局排序成为正式功能(从 GA) 全局排序功能旨在提高 34IMPORT INTO和CREATE INDEX的稳定性与效率。 �→ 通过对需要处理的数据进行全局排序,可以提高数据写入 TiKV 的稳定性、可控性和可扩展性, �→ 从而提升数据导入与索引添加的用户体验和服务质量。启用全局排序后,单条IMPORT INTO �→ code>0 码力 | 4807 页 | 101.31 MB | 1 年前3
TiDB v8.4 中文手册与现有的会话级执行计划缓存相比,实例级执行计划缓存能够在内存中缓存更多执行计划,减少 SQL �→ 编译时间,从而降低 SQL 整体运行时间,提升 OLTP 的性能和吞吐,同时更好地控制内存使用, �→ 提升数据库稳定性。�→ 分区表全局索引成为正式功能 优化了缓存表索引扫描的查询性能,部分场景可提升 5.4 倍。在需要对小表进行高速查询的场景下, �→ 利用缓存表可大幅提升整体性能。 稳定性与高可用 IndexLookup 执行 SELECT ... LIMIT 1 时,性能最高提升 5.4 倍。同时, 提升 IndexLookupReader 在全表扫描和主键查询场景下的性能。 37 2.2.1.2 稳定性 • 超出预期的查询 (Runaway Queries) 新增处理行数和 Request Unit 作为阈值 #54434 @HuSharp 从 v8.4.0 开始,TiDB 可以依据处理行数 (PROCESSED_KEYS) 390 码力 | 5072 页 | 104.05 MB | 10 月前3
TiDB v8.5 中文手册与现有的会话级执行计划缓存相比,实例级执行计划缓存能够在内存中缓存更多执行计划,减少 SQL �→ 编译时间,从而降低 SQL 整体运行时间,提升 OLTP 的性能和吞吐,同时更好地控制内存使用, �→ 提升数据库稳定性。�→ 分区表全局索引成为正式功能 优化了缓存表索引扫描的查询性能,部分场景可提升 5.4 倍。在需要对小表进行高速查询的场景下, �→ 利用缓存表可大幅提升整体性能。 稳定性与高可用 IndexLookup 执行 SELECT ... LIMIT 1 时,性能最高提升 5.4 倍。同时, 提升 IndexLookupReader 在全表扫描和主键查询场景下的性能。 42 2.2.1.2 稳定性 • 超出预期的查询 (Runaway Queries) 新增处理行数和 Request Unit 作为阈值 #54434 @HuSharp 从 v8.4.0 开始,TiDB 可以依据处理行数 (PROCESSED_KEYS) SaaS 或 PaaS 服务,统计信息加载效率的提升能够解决 TiDB �→ 实例启动缓慢的问题,同时也能提升统计信息动态加载的成功率, �→ 从而减少由于统计信息加载失败造成的性能回退,提升集群的稳定性。0 码力 | 5095 页 | 104.54 MB | 10 月前3
TiDB v8.2 中文手册试用链接:快速体验 | 下载离线包 在 8.2.0 版本中,你可以获得以下关键特性:分类 功能/增强 描述 稳定性与高可用 TiProxy �→ 支持多种负载均衡策略 引入并行 �→ HashAgg 作为实验特性,以进一步提升处理速度。当内存资源不足时,并行 HashAgg �→ 可以将临时排序数据落盘,避免因内存使用过度而导致的 OOM 风险,从而提升查询性能和节点稳定性 �→ 。该功能在 v8.2.0 成为正式功能,并默认开启,用户可以通过tidb_executor_concurrency �→安全地设置并行 HashAgg 的并发度。数据库管理与可观测性 0 码力 | 4987 页 | 102.91 MB | 10 月前 3
TiDB v8.0 中文手册�→ 。实际测试表明,该功能可将下载带宽打满,下载速度可提升 8 到 10 倍,端到端恢复速度大约提升 �→ 1.5 到 3 倍。增强在有大量表时缓存 schema 信息的稳定性 对于使用 TiDB 作为多租户应用程序记录系统的 SaaS 公司,经常需要存储大量的表。在以前的版本中, �→ 尽管支持处理百万级或更大数量的表,但可能会影响用户体验。TiDB �→ variables#tidb_enable_auto_analyze_priority_queue-从-v800-版本开始引入">优先队列, �→ 使流程更加流畅,并在大量表的情况下提高稳定性。 数据库管理与可观测性 支持观测索引使用情况 正确的索引设计是提升数据库性能的重要前提。TiDB 有收集价值的对象优先被处理,比如新创建的索引、发生分区变更的分区表等。同时,TiDB 也会优先处 理那些健康度较低的表,将它们安排在队列的前端。这一改进优化了收集顺序的合理性,能减少一部 分统计信息过旧引发的性能问题,进而提升了数据库稳定性。 更多信息,请参考用户文档。 • 解除执行计划缓存的部分限制 #49161 @mjonss @qw4990 TiDB 支持执行计划缓存,能够有效降低交易类业务系统的处理时延,是提升性能的重要手段。在 0 码力 | 4805 页 | 101.28 MB | 1 年前3
TiDB v5.2 中文手册· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 39 2.4.2 稳定性· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 特性,提供更直观方便的方式观察事务加锁情况以及排查死锁问题。 25 • 新增 TiFlash I/O 限流功能,提升 TiFlash 读写稳定性。 • 为 TiKV 引入新的流控机制代替之前的 RocksDB write stall 流控机制,提升 TiKV 流控稳定性。 • 简化 Data Migration (DM) 工具运维,降低运维管理的成本。 • TiCDC 支持 HTTP 协议 OpenAPI TiDB 节点上正在执行的事务的信息:TIDB_TRX • 对带有 AUTO_RANDOM 或者 SHARD_ROW_ID_BITS 属性的表,优化其大部分添加索引操作的场景。 2.2.2.3 稳定性 • 新增 TiFlash I/O 限流功能 TiFlash I/O 限流功能主要针对磁盘带宽较小且明确知道磁盘带宽大小的云盘场景,默认关闭。 TiFlash I/O Rate Limiter0 码力 | 2259 页 | 48.16 MB | 1 年前3
TiDB v7.6 中文手册�→ GetRegion、ScanRegions请求的能力,减轻 PD leader 的 CPU 压力。稳定性与高可用 支持 TiProxy(实验特性) 在 v7.6.0 之前,DM 迁移 MySQL 8.0 仅为实验特性,不能用于生产环境。TiDB v7.6.0 �→ 增强了该功能的稳定性、兼容性,可在生产环境帮助你平滑、快速地将数据从 MySQL 8.0 迁移到 �→ TiDB。在 v7.6.0 中,该功能正式 GA。 2.2.1 功能详情 2.2.1.1 可扩展性 t-max-cpu 默认是 10%,即为了减少对业务流量的影响,只有当 TiKV 的 CPU 利用率低于 10% 时,才会触发周期性全量数据整理。 更多信息,请参考用户文档。 2.2.1.3 稳定性 • 跨数据库绑定执行计划 #48875 @qw4990 在 TiDB 上运行 SaaS 服务时,为了方便数据维护和管理,通常会将每个租户的数据独立存储于不同数据 库中,并执行相同的业务逻辑。这0 码力 | 4666 页 | 101.24 MB | 1 年前3
TiDB中文技术文档果一个存储引擎是支持事务的 KV 引擎,并且能提供一个满足 TiDB 接口要求的 Client,即可接入 TiDB。 从 TiDB 架构来讲,支持真正意义上的跨中心异地多活,从操作层面讲,依赖数据中心之间的网络延迟和稳定性,一 般建议延迟在 5ms 以下,目前我们已经有相似客户方案,具体请咨询官方 info@pingcap.com。 目前官方文档是获取 TiDB 相关知识最主要、最及时的发布途径。除此之外,我们也有一些技术沟通群,如有需求可 Atomikos 发过来的 XA 类型 的操作。 MySQL 是单机数据库,只能通过 XA 来满足跨数据库事务,而 TiDB 本身就通过 Google 的 Percolator 事务 模型支持分布式事务,性能稳定性比 XA 要高出很多,所以不会也不需要支持 XA。 TiDB 的 show processlist 与 MySQL 的 show processlist 显示内容基本一样,不会显示系统进程号,而 版本发布历史 - 390 - 本文档使用 书栈(BookStack.CN) 构建 2.0.4 2018 年 6 月 15 日,TiDB 发布 2.0.4 版。该版本在 2.0.3 版的基础上,对系统兼容性、稳定性做出了改 进。 支持 ALTER TABLE t DROP COLUMN a CASCADE 语法 支持设置 tidb_snapshot 变量的值为 TSO 优化监控项中语句类型展示 优化查询代价估计精度0 码力 | 444 页 | 4.89 MB | 6 月前3
TiDB v7.5 中文手册X 和 Y,并发运行后, �→ 添加索引总耗时显著减少了。尤其是在宽表的场景, �→ 内部测试数据显示同时添加多个索引的性能最高可提升 94%。 33稳定性与高可用 优化全局排序 @tangenta • TiKV – 避免写 Titan manifest 文件时持有锁导致影响其他线程 #15351 @Connor1996 • PD – 提升 evict-slow-trend 调度的稳定性和易用性 #7156 @LykxSassinato • Tools – Backup & Restore (BR) * 快照备份新增表间备份参数 table-concurrency,用于控制统计信息备份、数据校验等元信息 每一位贡献者都是推动 TiDB 健壮发展的重要成员,我们感谢所有为 TiDB 提交代码、撰写或翻译文档的贡献者。 2.6.1 TiDB 开发者 TiDB 开发者为 TiDB 的新功能开发、性能优化、稳定性保障做出了贡献。以下链接包含了 TiDB 相关 repo 的贡献 者名单: • pingcap/tidb • tikv/tikv • tikv/pd • pingcap/tiflash • 0 码力 | 4590 页 | 100.91 MB | 1 年前3共 42 条- 1
- 2
- 3
- 4
- 5













