他のNoSQLプラグインとの比較
動作環境の比較
Environment | Transactd | memcached plugin | HandlerSocket | |
---|---|---|---|---|
Unix | MySQL 5.5 | o | x | o |
MySQL 5.6 | o | o | o | |
MySQL 5.7 | o | o | x | |
MySQL 8 | サポート予定 | o | x | |
MariaDB 5.5 | o | x | o | |
MariaDB 10.0 | o | x | o | |
MariaDB 10.1 | o | x | o | |
MariaDB 10.2 | o | x | o | |
Windows | MySQL 5.5 | o | x | x |
MySQL 5.6 | o | x | x | |
MySQL 5.7 | o | x | x | |
MySQL 8.0 | サポート予定 | x | x | |
MariaDB 5.5 | o | x | x | |
MariaDB 10.0 | o | x | x | |
MariaDB 10.1 | o | x | x | |
MariaDB 10.2 | o | x | x |
Transactdの利点
- Transactd プラグインおよびクライアントは、LinuxだけでなくWindowsにも対応しています。
- Transactd プラグインは、MySQL 5.5~5.7系、MariaDB 5.5~10.2系に対応しています。
- C++、ActiveX(COM)、PHPおよびRubyで利用可能なTransactd クライアントが提供されています。
機能の比較
Feature | Transactd | memcached plugin | HandlerSocket |
---|---|---|---|
Read/Insert/Update/Delete | o | o | o |
Start Transaction/Commit/Rollback | o | x | x |
Create/Drop Database Create/Drop Table |
o | x | x |
Read multi records | o | x | o |
Protocols | Transactd HandlerSocket |
memcached | HandlerSocket |
Transactdの利点
- Read/Insert/Update/Deleteの基本的なオペレーションに加えて、トランザクションが使用できます。
- データベースやテーブル作成など、アプリケーション開発に必要なほぼすべての操作が行えます。
- HandlerSocket プロトコルによるアクセスも可能です。(一部の機能のみ)
処理速度の比較
Ubuntu Server and Ubuntu Client
Read (5 client)
Protocols | Operations Per Second |
---|---|
SQL | 7,293 |
memcached | 12,671 |
HandlerSocket | 24,754 |
Transactd (Ruby) | 27,667 |
Transactd (C++) | 27,533 |
Transactdの利点
- ほとんどのテストで最速です。特に、多用するReadオペレーションにおいて差が顕著です。
- InsertやUpdateでは、他のプラグインにはできないBulkInsertやTransactionによりさらに高速化が図れます。
- Rubyクライアントでも高速な処理が期待できます。
速度テストの結果一覧(グラフをクリックすると拡大表示します)
Ubuntu Server and Ubuntu Client | |||||||
---|---|---|---|---|---|---|---|
Read | Read Range |
Insert | Insert Transaction | Insert Bulk |
Update | Update Transaction |
|
1 client | |||||||
5 client | |||||||
Ubuntu Server and Windows Client | |||||||
Read | Read Range |
Insert | Insert Transaction | Insert Bulk |
Update | Update Transaction |
|
1 client | |||||||
5 client | |||||||
Windows Server and Ubuntu Client | |||||||
Read | Read Range |
Insert | Insert Transaction | Insert Bulk |
Update | Update Transaction |
|
1 client | |||||||
5 client | |||||||
Windows Server and Windows Client | |||||||
Read | Read Range |
Insert | Insert Transaction | Insert Bulk |
Update | Update Transaction |
|
1 client | |||||||
5 client |
計測方法について
- SQL, memcached, HandlerSocket, Transactd(Ruby) はRubyのクライアントプログラムで計測。
- Transactd(C++) はC++のクライアントプログラムで計測。
- SQLはmysql、memcachedはdalli、 HandlerSocketはhandlersocketのGemを利用。
- MySQL Server 5.6.14で計測。
- サーバーマシンは AMD Opteron(TM) Processor 6212 / 10GB RAM。OSはWindows Server 2012 と Ubuntu Server 12.04 x86_64。
- クライアントマシンは Intel(R) Core(TM)2 Duo CPU P8400 @ 2.26GHz / 4GB RAM。OSは Windows 7 64bit と Ubuntu Server 11.10 x86_64。