最快的方法SELECT * WHERE not null

时间:2017-09-01 10:39:09

标签: sql hive

我想知道获取所有非空行的最快方法是什么。我想到了这些:

SELECT * FROM table WHERE column IS NOT NULL

SELECT * FROM table WHERE column = column

SELECT * FROM table WHERE column LIKE '%'

(我不知道如何测量SQL和/或Hive中的执行时间,并且在pgAdmin中反复尝试4M行表,我没有明显区别。)

1 个答案:

答案 0 :(得分:5)

在Hive上运行这些查询时,您永远不会注意到性能上的任何差异,因为这些操作非常简单并且在并行运行的映射器上运行。

初始化/启动映射器比这些查询的执行时间的可能差异花费更多的时间,并且在总执行时间中添加了大量的启发式,因为映射器可能正在等待资源而根本不运行。

但您可以尝试衡量时间,请参阅此答案,了解如何衡量执行时间:https://stackoverflow.com/a/44872319/2700344

尽管所有查询都是正确的,但

SELECT * FROM table WHERE column IS NOT NULL更直接(可理解/可读)。