C#和NewSQL更配 —— TiDB入門,

來源:互聯網
上載者:User

C#和NewSQL更配 —— TiDB入門,
一、背景

  在上一篇嘗試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

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.