tidb时间转字符串

去年11月,我从在云中扩展两个解决方案的角度,写了MySQL与TiDB (一个兼容开源的,基于云的数据库引擎) 之间的关键区别 。 在此后续文章中,我将更深入地介绍TiDB简化和简化管理的方式。

如果您来自MySQL,那么您可能会习惯于执行很多不需要的手动任务,或者使用TiDB进行简单的操作。

TiDB的灵感来自于一些中国最大的互联网公司大规模管理分片MySQL的创始人。 由于大规模操作大型系统的要求是一个关键问题,因此我将介绍一些典型MySQL数据库管理员(DBA)任务以及它们如何转换为TiDB。

在TiDB的体系结构中 :

  • SQL处理与数据存储分开。 SQL处理(TiDB)和存储(TiKV)组件独立地水平扩展。
  • PD(布局驱动程序)充当集群管理器并存储元数据。
  • 所有组件本身都使用Raft共识算法提供PD和TiKV的高可用性。
  • 您可以通过MySQL(TiDB)或Spark(TiSpark)协议访问数据。

添加/修复复制从属

tl; dr:它发生的方式与MySQL中不同。

数据的复制和冗余由TiKV自动管理。 你也不必担心创建初始备份副本的种子, 同时作为配置和复制是为您处理。

使用Raft共识算法,复制也是基于仲裁的,因此您不必担心与异步复制(MySQL中的默认值以及许多用户使用的错误)相关的不一致问题。

TiDB确实支持其自己的二进制日志,因此可用于集群之间的异步复制。

优化慢查询

tl; dr: TiDB仍会发生

优化开发团队引入的慢查询并没有真正的出路。

但是,作为缓解因素,如果在进行优化时需要为数据库的容量增加喘息的机会,则TiDB的体系结构允许您水平扩展。

升级和维护

tl; dr:仍需要,但通常更容易

由于TiDB服务器是无状态的,因此您可以滚动升级并部署新的TiDB服务器。 然后,您可以从负载平衡器池中删除较旧的TiDB服务器,并在连接耗尽后将其关闭。

升级PD也是非常简单的,因为一次只有PD负责人主动响应请求。 您可以执行滚动升级,一次升级PD的非领导者对等方,然后在升级最终的PD服务器之前更改领导者。

对于TiKV,升级稍微复杂一些。 如果要删除节点,建议您首先将其设置为当前每个节点上的领导者的跟随者。 之后,您可以关闭该节点而不会影响您的应用程序。 如果停机时间很短,则TiKV将从其Raft日志中与其区域同行恢复。 在更长的停机时间内,它将需要重新复制数据。 但是,如果您选择使用Ansible或Kubernetes进行部署,则可以全部由您管理。

手动分片

tl; dr:不需要

手动分片主要是应用程序开发人员的痛苦,但是作为DBA,如果分片是幼稚的或存在诸如热点(许多工作负载确实需要重新平衡)之类的问题,则您可能必须介入。

在TiDB中,重新分片或重新平衡会在后台自动发生。 PD服务器观察数据区域(键值形式的数据块的TiKV术语)何时变得太小,太大或太频繁地访问。

您还可以显式配置PD以将区域存储在某些TiKV服务器上。 当与MySQL分区结合使用时,这确实很好。

容量规划

tl; dr:容易得多

MySQL数据库的容量规划可能会有些困难,因为您需要从现在开始的两到三年内规划物理基础架构需求。 随着数据的增长(工作集发生变化),这可能是一项艰巨的任务。 我也不会说它完全消失在云中,因为更改主服务器的硬件总是很困难。

TiDB将数据拆分为大约100MiB的块,并在TiKV服务器之间分发。 因为此增量比完整服务器要小得多,所以移动和重新分配数据要容易得多。 也可以以较小的增量添加新服务器,这在规划时更容易。

缩放比例

tl; dr:容易得多

这与容量规划和分片有关。 当我们谈论扩展时,很多人都在考虑非常大的系统,但这并不是我唯一想到的问题:

  • 扩展可以从很小的东西开始,而不必在可能变得非常大的情况下预先进行大量投资。
  • 缩放也是一个人的问题。 如果系统需要太多的内部知识才能运行,那么作为工程组织就很难成长。 新员工进入的障碍可能会非常高。

因此,通过提供自动分片,TiDB可以更轻松地扩展。

架构变更(DDL)

tl; dr:更好

TiDB支持的数据定义语言(DDL)都是在线的,这意味着它不会阻止其他对系统的读取或写入。 它还不会阻止复制流。

这是个好消息,但要注意一些限制:

  • TiDB当前不支持所有DDL操作,例如更改主键或某些“更改数据类型”操作。
  • TiDB当前不允许您在同一命令中链接多个DDL更改,例如ALTER TABLE t1 ADD INDEX(x),ADD INDEX(y) 。 您将需要将这些查询分解为单个DDL查询。

这是我们希望在TiDB 3.0中改进的领域 。

为报告团队创建一次性数据转储

tl; dr:可能不需要

DBA讨厌手动任务,后者会一次性创建数据导出,以供另一个团队使用,也许是在分析工具或数据仓库中。

当在数据集上执行的查询类型为分析型时,通常需要这样做。 TiDB具有混合事务/分析处理(HTAP)功能,因此在许多情况下,这些查询应该可以正常工作。 如果您的分析团队使用的是Spark,则还可以使用TiSpark连接器使他们直接连接到TiKV。

这是我们使用列存储加速器TiFlash改进的另一个领域。 我们还在开发一个插件系统以支持外部身份验证。 这将使报告团队更易于管理访问。

结论

在本文中,我研究了一些常见MySQL DBA任务以及它们如何转换为TiDB。 如果您想了解更多信息,请查看我们的专为MySQL DBA设计的TiDB学院课程 (免费!)。

翻译自: https://opensource.com/article/19/3/how-save-time-tidb

tidb时间转字符串

tidb时间转字符串_如何使用TiDB节省时间相关推荐

  1. 整型(int)转时间格式字符串及页面long型转时间格式字符串

    1,如果是封装的整型的话需要在后台进行处理再返回页面 处理过程是这样的 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm ...

  2. 时间转年月日_编程中常见的时间格式

    时间格式 前端和后端时经常会遇到各种各样的时间格式,这些格式在编写程序的时候都需要去使用不同的处理方式,这里集中写一下. 先说一下各种不同的时间格式. 类型名 格式 说明 ISO 8601 一般:20 ...

  3. hive 时间转字符串_大数据面试杀招——Hive高频考点,还不会的进来挨打

    一.什么是Hive,为什么要用Hive,你是如何理解Hive? 面试官往往一上来就一个"灵魂三连问",很多没有提前准备好的小伙伴基本回答得都磕磕绊绊,效果不是很好.下面贴出菌哥的回 ...

  4. mysql数据库时间不准确_主数据库(mysql)的时间不对

    今天早上领导通知我讲主数据库的时间不对,Linux的系统时间是对的.怎么回事???难道是我以前更改了系统时间造成??怎么解决呢? 在mysql手册中有下面这段话: 5.10.8. MySQL服务器时区 ...

  5. linux的时间转换为字符串,linux time转换为可读时间字符串

    将linux time转换为可读的时间字符串的方法 -陈运文 用下面的函数可以方便的转换(C语言) int change_time_tostr(int time, char *timestr){ tm ...

  6. centos网络隔一段时间就断_“路由器隔一段时间就上不了网,断一下电又能用了,这是什么原因...

    有人留言问:"路由器隔一段时间就上不了网,断一下电又能用了,这是什么原因?"具体原因具体分析,下面和北京宽带通一起来看下这三种情况. 1.隔几十分钟就断网,有时候甚至隔几分钟就断一 ...

  7. 微信文件撤回时间多长_微信中文件撤回时间延长至多久?

    微信中文件撤回时间延长至3个小时.若微信版本为7.0.10及以上,可以在3个小时内操作撤回文件(Word.Excel.PPT等文档). [] 新功能:微信文档类消息的撤回时间变成了 3小时 为什么会有 ...

  8. mysql 时间添加分钟_在MySQL中为时间添加某些分钟

    我有一个字段是时间字段(它不需要是日期时间字段,因为这里的日期部分没有意义).我要添加的值在另一个字段中,以分钟为单位. 所以基本上,我想给时间值加上分钟.我尝试了日期添加函数,但它希望日期是日期时间 ...

  9. db29.7时间格式化为时间到时分秒_科普!GoldWave的时间表示大全指南

    众所周知,GoldWave是一个音频编辑软件,有一个很重要的属性,就是时间.时间在音频的属性中无疑是最重要最特殊的几个之一,音频的开始.发展.进行.结束,都是根据时间的进度来的.那么弄明白时间进度条在 ...

最新文章

  1. unity3d版本控制的设置方法(SVN)
  2. js 将时间戳转为日期格式
  3. c# forbidden.html,c# – 如何使用Forbidden状态web api返回ModelState
  4. mysql ERROR 1045 (28000): 错误解决办法
  5. 使用Magicodes.IE.Excel完成Excel图片的导入和导出
  6. Teradata应用迁移到AnalyticDB for PostgreSQL指导
  7. java this关键字的使用
  8. mysql 当前timestamp_MySQL表结构使用timestamp以自动获取当前时间
  9. 创建服务factory和service方法的区别
  10. 下载python教程-Python基础教程下载【黑马程序员完整版】
  11. 阿里云云计算 43 CDN的使用
  12. Trained Tesseract on 瘦金体 successfully!!
  13. android基础教程:多个页面时如何设置首页
  14. 九九乘法表的四种打印模式
  15. matlab 有限元法,基于Matlab语言的有限元法及其应用
  16. 面向对象方法及软件工程实验二
  17. Mac 开启局域网smb文件共享(附全平台连接方法)
  18. 三级数据库技术|重要知识点(一)
  19. 系统集成项目管理工程师考试-项目管理口诀
  20. 关于 pygame中,检测按键按下

热门文章

  1. ChannelHandler 与 ChannelPipeline 详解
  2. 分布式幂等性如何保证
  3. 使用jxl来读取Excel中的数据
  4. dubbo+rabbitmq+hystrix实现服务的高可用
  5. Sphinx+Scws 搭建千万级准实时搜索应用场景详解
  6. IBM 340亿美元收购红帽,开源史上最大交易!
  7. spring发送邮件
  8. JAVA连接Mysql事例
  9. QQ通讯录VS360通讯录对新建信息界面中草稿的处理
  10. 关于proxy模式下,@Transactional标签在创建代理对象时的应用