2015-09-08 55 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

试试吧,让我知道@约瑟夫。我使用未格式化的查询获得了更好的结果。 –