2015-09-08 81 views
0

爲什麼格式化查詢比無格式查詢需要更多時間? 另請注意我已經多次運行查詢(因此計劃緩存考慮在內)memsql - 格式化查詢比無格式查詢需要更多時間

這是否意味着memsql在查詢格式處理上很差?

比如我試過下面的查詢(格式化)

select count(*) from users where users.rep > 5; 
+----------+ 
| count(*) | 
+----------+ 
|  589 | 
+----------+ 
1 row in set (0.01 sec) 

但出乎意料的是,當被格式化相同的查詢需要更多的時間

SELECT 
    COUNT(*) 
FROM 
    users 
WHERE 
    users.rep > 5 ; 
+----------+ 
| count(*) | 
+----------+ 
|  589 | 
+----------+ 
1 row in set (1.39 sec) 

回答

1

隨着memsql,你必須等待代碼編譯的第一次運行查詢時,格式化的查詢被視爲「不同的查詢」,而不是未格式化的查詢。空白很重要!嘗試再次運行格式化的版本。

一般而言,MemSQL查詢只有在您第二次運行時纔會很快。
請參閱http://docs.memsql.com/4.0/concepts/codegen/

+0

我同時運行格式化和未格式化的查詢多次。仍然是相同的結果。爲什麼memsql處理格式化查詢如此糟糕? –

+0

在執行時應該沒有任何區別......您可以使用information_schema.plancache來仔細檢查您是否重新編譯了許多稍有不同的查詢。但是,在這些查詢的執行方面應該沒有任何區別。 –

+0

試試吧,讓我知道@約瑟夫。我使用未格式化的查詢獲得了更好的結果。 –