我在memsql和mysql中運行了下面的查詢,但是它花費的時間卻大不相同。3個表之間的簡單連接需要花費大量的時間在memsql中
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)
爲什麼難道memsql得很厲害,而MySQL的是如此之快執行?
mysql和memsql都在同一個8GB四核機器上。 memsql有1個主聚合節點和3個葉節點。
如果有聯接,memsql表現不好嗎?
UPDATE
從Doc很顯然,該表應具有其上有望常常參加在列片鍵。這允許優化器在執行查詢期間最小化網絡流量。
所以我想我在這裏我錯了。我沒有添加分片鍵,而是在表格上添加了一個簡單的主鍵。
你的桌子上有什麼索引?特別是,你有'B.post_date'上的索引嗎? – Ishamael