背景 用户在做技术选型的过程中,总是会对一些数据指标比较关心,特别是在和竞品相比较的时候,更加需要一些有说服力的数据.基于MySQL开发的项目在迁移到TiDB的时候,使用DM同步数据是必不可少的一个环节,我在最近的一次POC中就碰到了这样一个需求,需要评估一个具体的延时时间参考值,因为用户在迁移前期的过渡阶段是把TiDB作为MySQL的从库,有些场景对这个延时很敏感,如果延时太大会直接影响业务. 由于DM并不能直接看到整个链路的延时时间,所以我们必须另辟蹊径找一些办法来实现,以下是我实践过的几种…
操作系统:CentOS7 mysql版本:5.7 TiDB版本:2.0.0 同步方法:使用TiDB提供的工具集进行同步 说明: 单机mysql同步时,可以直接使用binlog同步, 但mysql集群进行同步时,则必须依靠GTID,但开启GTID后,对事物要求更高,导致以下操作会失败: (1) 不能同时揉合多个事件:(2) 事务内部不能创建临时表:(3) 不能在同一事务中即更新InnoDB表,又更新MyISAM表. 下载tidb的同步工具包 # wget http://download.pingc…
C语言计算时间函数 & 理解linux time命令的输出中“real”“user”“sys”的真正含义 https://blog.csdn.net/willyang519/article/details/8841208 中午看了下公众号 发现一个 计算命令执行时间的方法.. time comand.sh 就可以 之前还是自己 捯饬了一个计算realtime 的方法..感觉自己好笨..   在完成编译原理的实验时,想比较用链表和哈希表共同执行一段程序的时间是否有差异,最开始使用函数如下: mai…
前言 这里采用了tpc-h一个数据库的数据量来进行查询计划的对比.并借助tpc-h中的22条查询语句进行执行计划分析. mysql采用的是标准安装,TiDB采用的是单机测试版,这里的性能结果不能说明其性能差异 本文章主要目的是对比Mysql与TiDB在执行sql查询时的差异. mysql版本5.7   TiDB版本v2.0.0-rc.4 准备阶段 数据导入TiDB后是缺少统计信息的: SHOW STATS_META 可以手工进行统计信息的刷新 ANALYZE TABLE nation,regio…
背景 TiDB 提供了很多种数据迁移的方式,但这些工具/方案普遍对MySQL比较友好,一旦涉及到异构数据迁移,就不得不另寻出路,借助各种开源或商业的数据同步工具.其实数据在不同系统的流转当中,有一种格式是比较通用的,那就是txt/csv这类文件,把数据用约定好的分隔符换行符等标记存放在一起,比如最常见的逗号分隔: aa,11,a1 bb,22,b2 这个文件可以保存为data.txt或者data.csv,一般主流的数据库都支持把这类文件直接导入到对应的表中. csv本身就是逗号分隔符文件,但是由…
背景 上一篇<记一次简单的Oracle离线数据迁移至TiDB过程>说到在使用Lightning导入csv文件到TiDB的时候发现了一个bug,是这样一个过程. Oracle源库中表名都是大写,经过前文所述的方法导入到TiDB后表名也是保持全大写,数据同步过程非常顺利. 第二天我把整套操作流程教给一位新手朋友,他就挑了一张表用来做实验,结果死活都不行.各种分析和重试都没有效果,就在快要懵逼的时候想到了这个大小写问题,把csv拉出来一看是个全小写的文件名,我尝试着把表名改成大写再导入一次,这次终于…
背景 最近在给一个物流系统做TiDB POC测试,这个系统是基于MySQL开发的,本次投入测试的业务数据大概10个库约900张表,最大单表6千多万行. 这个规模不算大,测试数据以及库表结构是用Dumpling从MySQL导出,再用Lightning导入到TiDB中,整个过程非常顺利. 系统在TiDB上跑起来后,通过Dashboard观察到有一条SQL非常规律性地出现在慢查询页面中,打开SQL一看只是个单表查询并不复杂,感觉必有蹊跷. 问题现象 以下是从Dashboard中抓出来的原始SQL和执行…
一.小米 1.背景 小米关系型存储数据库首选 MySQL,单机 2.6T 磁盘.由于小米手机销量的快速上升和 MIUI 负一屏用户量的快速增加,导致负一屏快递业务数据的数据量增长非常快, 每天的读写量级均分别达到上亿级别,数据快速增长导致单机出现瓶颈,比如性能明显下降.可用存储空间不断降低.大表 DDL 无法执行等,不得不面临数据库扩展的问题. 对于 MySQL 来讲,最直接的方案就是采用分库分表的水平扩展方式,综合来看并不是最优的方案,比如对于业务来讲,对业务代码的侵入性较大:对于 DBA 来…
背景 最近在支持一个从Oracle转TiDB的项目,为方便应用端兼容性测试需要把Oracle测试环境的库表结构和数据同步到TiDB中,由于数据量并不大,所以怎么方便怎么来,这里使用CSV导出导入的方式来实现. 整个过程可以分为三个步骤: 库表结构转换 源数据导出 导入目标库 库表结构转换 众所周知TiDB是兼容MySQL协议的,所以Oracle的表结构定义在TIDB不一定能完全使用,这时候就需要做一些转换,比如字段类型.关键字.系统函数等等.如果表比较少的话,手动转一下也不是不行,但本次测试的O…
[编者按]TiDB 是国内 PingCAP 团队开发的一个分布式 SQL 数据库.其灵感来自于 Google 的 F1,TiDB 支持包括传统 RDBMS 和 NoSQL 的特性.在国内 ITOM 管理平台 OneAPM 举办的技术公开课中,TiDB 的高级工程师刘奇从 HBase 特性.TiDB 的优势和系统架构等方面进行了详细阐述.以下为演讲整理: HBase 简介 众所周知,在 SQL 方面处于顶级的有两个公司,一个是 Oracle,他们已经积累了大量的经验,另一个是谷歌,谷歌 F1 在2…