memsql と mysql で次のクエリを実行しましたが、所要時間はかなり異なります。
Memsql
select count(*) from po A , cu B , tsk C where A.customer_id = B.customer_id and B.taskid = C.id and A.domain = 5 and week(B.post_date) = 22;
+----------+
| count(*) |
+----------+
| 98952 |
+----------+
1 row in set (19.89 sec)
Mysql
select count(*) from po A , cu B , tsk C where A.customer_id = B.customer_id and B.taskid = C.id and A.domain = 5 and week(B.post_date) = 22;
+----------+
| count(*) |
+----------+
| 98952 |
+----------+
1 row in set (0.50 sec)
mysql は非常に高速であるのに、memsql のパフォーマンスが非常に悪いのはなぜですか?
mysql と memsql の両方が、同じ 8GB のクアッド コア マシン上にあります。memsql には、1 つのマスター Aggregator ノードと 3 つのリーフ ノードがあります。
結合がある場合、memsql のパフォーマンスは低下しますか?
アップデート
Docから、テーブルには、頻繁に結合することが予想される列にシャード キーが必要であることは明らかです。これにより、オプティマイザはクエリの実行中にネットワーク トラフィックを最小限に抑えることができます。
だから私はここで私が間違っていたと思います。シャード キーの代わりに、テーブルに単純な主キーを追加しました。