一、背景

  在上一篇尝试CockroachDB(传送门在此:http://www.cnblogs.com/Zachary-Fan/p/cockroachdb_net_csharp.html)的过程中,发现如果从常规的RDBMS迁移过去几乎是不太可能的事情,所以掉头开始调研一下也是这2年比较火的一个NewSQL,而且是我们国人做的产品,火爆程度甚不亚于CockroachDB —— TiDB。

二、TiDB是什么

  TiDB(https://www.pingcap.com/index-zh)也是受Google Spanner / F1 论文的启发, 实现了自动的水平伸缩,强一致性的分布式事务,基于 Raft 算法的多副本复制等重要 NewSQL 特性。 从对外提供的功能上它与CockroachDB是类似的,其中最大的区别在它完全兼容MySQL协议,支持包括跨行事务,JOIN 及子查询在内的绝大多数 MySQL 的语法(看着就用起来很爽的样子)。

三、环境部署

  官方文档(https://www.pingcap.com/docs-cn)写的非常详细,按照做就好了。笔者在CentOS上直接使用Binary的方式进行的部署。然后使用任意一个可以连接Mysql的客户端连上去即可。默认端口是4000,有一个内置的“test”数据库。使用root账户,默认无需密码即可连上。笔者使用DBeaver进行连接,如下图1:

四、实战

  和上一篇一样,我们现在在直接在test数据库下创建好待测试的表,然后在Nuget上引用Oracle发布的MySql官方DLL,直接就可以测试了,和MySql用法一模一样,代码如下:

using (var conn = new MySqlConnection(connectionString))

{

using (var cmd = conn.CreateCommand())

{

cmd.Connection = conn;

cmd.CommandText = "SELECT id, balance FROM accounts";

cmd.CommandType = CommandType.Text;

using (var reader = cmd.ExecuteReader())

{

while (reader.Read())

{

Console.WriteLine(@" reader[id] is {0}", reader["id"]);

Console.WriteLine(@" reader[balance] is {0}", reader["balance"]);

}

}

}

}

五、性能测试

  好了测试环境和上篇一样,客户端机器是 4核 i5-4300U,数据库所在的机器是 8核 Xeon(R) E5630。结果里包含了上篇的测试结果以作参考。其中增加了对Join的测试,结果见下图1(点击可查看大图)。

  特别注意的是,分布式数据库对资源的消耗是单体数据库的好几个量级,其中CockroachDB和TiDB跑不上去都是因为CPU跑满了。但是值得注意的是,其中TiDB的综合结果比Cockroach更好(除了在长连接+少数据量的情况下)。由于硬件资源不够本次未做分布式模式下的性能,这个我会在接下去进一步进行测试,主要是为了验证在CPU未达到瓶颈的情况下,与传统单体关系型数据库的性能差异,敬请期待~

六、结语

  算是将对标Google Spanner / F1 的2个数据都体验了一把,欣喜的是,我们国人做的TiDB目前的功能和质量上都胜过CockroachDB一筹,还是很值得期待的。另外今年6月刚获得B轮融资,希望越做越好吧

原文:http://www.cnblogs.com/Zachary-Fan/p/tidb_net_csharp.html


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com 

C#和NewSQL更配 —— TiDB入门相关推荐

  1. C#和NewSQL更配 —— CockroachDB入门

    一.CockroachDB是什么 CockroachDB(https://www.cockroachlabs.com)是Google备受瞩目的Spanner的开源模仿,承诺提供一种高存活性.强一致性, ...

  2. 听说Attention与Softmax更配哦~

    ©PaperWeekly 原创 · 作者 | 苏剑林 单位 | 追一科技 研究方向 | NLP.神经网络 不知道大家留意到一个细节没有,就是当前 NLP 主流的预训练模式都是在一个固定长度(比如 51 ...

  3. p8刷原生android,【EMUI3.1全局】原生Android M + IOS 7完美结合,听说跟P8更配哦

    下载主题放到Hwthemes文件夹内,打开[主题]--[我的]即可看到主题,应用即可. 无论是安卓M还是苹果IOS风格的主题,一直都备受追捧. 今天楼主给大家推荐一款别样的主题,原生Android M ...

  4. 炒股配资入门有哪些基础知识?

    炒股配资入门有哪些基础知识?盘前查跟大家讲一下,如下: 第一,开户要想投资股票,首先你要有一个股票账户,股票账户的开户就要去找券商,选择一个好券商也是很重要的.市场上可选择的券商有很多,关键还是看佣金 ...

  5. OSChina 周四乱弹 —— 听说圣诞节和单身狗更配哦

    2019独角兽企业重金招聘Python工程师标准>>> 周四,剩单快乐! 周三又是个不寻常的日子,西方节日总是充斥着各种故事 昨天由@叶秀兰  童鞋引发了众多 OSCer 对@红薯 ...

  6. OPEN(SAP) UI5 学习入门系列之四:更好的入门系列-官方Walkthrough

    好久没有更新了,实在不知道应该写一些什么内容,因为作为入门系列,实际上应该更多的是操作而不是理论,而在UI5 SDK中的EXPLORER里面有着各种控件的用法,所以在这里也没有必要再来一遍,还是看官方 ...

  7. python和vb基础哪个简单_python和VB哪个更容易学习入门呢?

    当然是Python,Python是最接近人类语言的编程语言,但是想对编程更理解,c语言是必须学的 没法说哪个好或者哪个不好.各有优缺点.python在网络上应用的很多,而VB主要应用在桌面应用上.主要 ...

  8. 戴上更专业的入门有线耳机,享受更悦耳的音符,KZ-ZVX上手

    现在大家给手机配耳机的时候,蓝牙耳机应该都是首选,百元左右也能找到不少选择,不过就实际体验和音质表现来说,有线耳机还是用起来更有感觉,听歌更舒服一些. 最近我在用一款百元价位的有线耳机,叫做KZ-ZV ...

  9. 五彩进化树与热图更配-ggtree美颜进化树(宏基因组扩增子)

    Y叔创建的R包--ggtree,进化树美化神器. 软件原文G Yu, DK Smith, H Zhu, Y Guan, TTY Lam. ggtree: an R package for visual ...

最新文章

  1. 必须进行支持的游戏方可使用此功能_企业微信 3.0上线,开放朋友圈功能,又一风口?...
  2. 新建用户组、用户、用户密码、删除用户组、用户(适合CentOS、Ubuntu系统)
  3. java.lang.ClassNotFoundException
  4. 区域显示触发_天涯明月刀手游五行藏珍天机奇遇怎么触发?五行藏珍天机奇遇攻略...
  5. 搜索公网上所有使用了SAP BSP技术的网站
  6. android 引用路径,android – ClassLoader引用了未知路径:/ data...
  7. Springboot之actuator配置不当漏洞RCE(jolokia)
  8. 不怕面试被问了!二叉树算法大盘点 | 原力计划
  9. 【难题+重点】剑指offer——面试题40:数组中只出现一次的数字
  10. ZendFramework多模块配置
  11. 算法 判断多个点是否在同一圆周线上_广州灵活计费自动出盘机技术方案大盘点...
  12. kubectl配置tab补全
  13. 计算机专业考研入坑详解(持续更新)
  14. .NET代码混淆——开源.net 混淆器ConfuserEx介绍
  15. PX4原生固件,position_estimator_inav解读
  16. SpringBoot 集成 TkMybatis
  17. div 设置a4大小_打印A4网页大小设置
  18. 【现代密码学原理】——消息认证码(学习笔记)
  19. 喜讯!清华大学镜像站恢复anaconda加速
  20. Personal Information

热门文章

  1. libgdx游戏引擎开发笔记(十)SuperJumper游戏例子的讲解(篇四)---- 主游戏界面内部框架编写...
  2. 关于WannaCry勒索病毒 你需要知道的8个问题
  3. MapReduce经典案例——统计单词数
  4. OpenStack开启亚洲之旅
  5. Linux集群服务知识点总结及通过案例介绍如何实现高性能web服务(三)
  6. JS partial-application
  7. 一个IT人的非典型职场十年 (5)
  8. C#类类型“.NET技术”
  9. WPF实现环(圆)形进度条
  10. 一日一技:在Ocelot网关中实现IdentityServer4密码模式(password)