晋江网站建设价格,重庆施工许可证查询,app外包网,24小时自助下单网站一、背景在上一篇尝试CockroachDB#xff08;传送门在此#xff1a;http://www.cnblogs.com/Zachary-Fan/p/cockroachdb_net_csharp.html#xff09;的过程中#xff0c;发现如果从常规的RDBMS迁移过去几乎是不太可能的事情#xff0c;所以掉头开始调研一下也是这2年比较火… 一、背景 在上一篇尝试CockroachDB传送门在此http://www.cnblogs.com/Zachary-Fan/p/cockroachdb_net_csharp.html的过程中发现如果从常规的RDBMS迁移过去几乎是不太可能的事情所以掉头开始调研一下也是这2年比较火的一个NewSQL而且是我们国人做的产品火爆程度甚不亚于CockroachDB —— TiDB。二、TiDB是什么 TiDBhttps://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