MySQL ClusterをInnoDBスキーマの可能な代替品として評価しています。これまでのところ、私はそれを数十MBのデータでテストしましたが、MySQL ClusterはInnoDBより遅いことがわかりました。ただし、MySQL Clusterの方がはるかに優れていると言われています。
MySQL ClusterとInnoDBスキーマのパフォーマンス上の利点を示すのにどのくらいのデータが必要ですか?または、MySQL Clusterのメリットを実証するより良い方法はありますか?
[〜#〜]編集[〜#〜]
おそらく重要な注意:私のクラスターは現在、4台のマシンを持つ異種クラスターです。各マシンで、同量のデータおよびインデックスメモリを指定しました。それぞれ4 GB、2 GB、2 GB、1 GB。マシンはi7を実行しており、Gigabit Lanを介して接続されています。 NumOfReplicasは2に設定されます。
[〜#〜]編集[〜#〜]
このアプリケーションは、使用率の低い分析データベースであり、およそ3つのテーブル> = 2億行、5つのテーブル<= 10K行があります。使用すると、集約関数の実行に15秒かかります。私は上司から、MySQL Clusterを調査して、パフォーマンスを向上できるかどうかを確認するように依頼しました。
MySQL Clusterはインデックス付きの列をメモリに格納するため、メモリ内クラスタの実際の最大データサイズは約3GBです。インデックスのない列を含むテーブルをディスクに保存する場合、データセットをさらにスケーリングできます
MySQL Clusterは自動的にテーブルを複数のノードに分割し、各ノードがマスターになります。これは、OLTP=ワークロード、特に書き込み集中型のワークロード)に非常に高いパフォーマンスを提供します。最高レベルのパフォーマンスを得るには、クラスターに負荷を導入する、つまり複数のAPIノードを構成する必要があります。クラスタにアクセスするために複数のスレッドで構成された各ノード。
MySQL Clusterの最新の7.2GAリリースには、Adaptive Query Localizationと呼ばれる新機能が含まれています。これは、JOINクエリをデータノードにプッシュして、ネットワークホップを減らし、レイテンシを減らします。
パフォーマンスを最大限に活用するために、次のように発行されたパフォーマンスガイドがあります(注、登録が必要です)。 http://www.mysql.com/why-mysql/white-papers/guide-to- mysql-clusterの最適化パフォーマンス/
分析が目的であれば、 InfiniDB のサービスを確認することをお勧めします。これらはオープンソースであり、MySQLカラムストレージエンジンに基づいています(レビュー済み here )。それは興味深いです。そして、それらは実装されています ウィンドウ関数 これはあなたのユースケースに合うかもしれません。 Infobright は似たようなことをしましたが、空間の中で遠くにあるようには見えません。比較があります here ですが、4年以上経過しています。