MapD在文本字段上变慢

时间:2017-09-28 22:57:46

标签: mapdb

在对以下查询进行基准测试时:

SELECT * from test order by c0 asc limit 1

我们得到的十项测试中有:

Took: 7877 ms. (7.877 s)
Took: 15617 ms. (15.617 s)
Took: 8067 ms. (8.067 s)
Took: 15924 ms. (15.924 s)
Took: 8057 ms. (8.057 s)
Took: 15864 ms. (15.864 s)
Took: 15455 ms. (15.455 s)
Took: 15245 ms. (15.245 s)
Took: 7857 ms. (7.857 s)
Took: 15624 ms. (15.624 s)

c0是一个文本字段。 为什么这个查询这么慢?有没有办法解决这个问题或做一个解决方案,以便查询 - 在任何其他数据库中需要0.1秒 - 可以接受?

1 个答案:

答案 0 :(得分:1)

表格中有多少行? c0的基数是什么?是否可以访问您的基准详细信息和数据。

MapD没有索引,因此sql表示如下所示,对于c0列完全执行了sort,我们还没有针对这种特定样式的查询计划进行优化。

要为查询获得更高效的结果,请尝试按以下步骤重写

select * from test where c0 in (select c0 from test group by c0 order by c0 asc limit 1) limit 1;

有点啰嗦,但我希望你能找到更好的表现。

使用在线400米Twitter数据集,以下查询将在大约100毫秒内恢复

select * from tweets_new where county_state in (select county_state from tweets_new group by county_state order by county_state asc limit 1) limit 1;