我想知道获取所有非空行的最快方法是什么.我想到了这些:
SELECT * FROM table WHERE column IS NOT NULL
SELECT * FROM table WHERE column = column
SELECT * FROM table WHERE column LIKE '%'
Run Code Online (Sandbox Code Playgroud)
(我不知道如何测量SQL和/或Hive中的执行时间,并且在pgAdmin中反复尝试4M行表,我没有明显的区别.)
在Hive上运行这些查询时,您会更新注意到性能上的任何差异,因为这些操作非常简单并且在并行运行的映射器上运行.初始化/启动映射器比这些比较的执行时间的可能差异花费更多的时间,并且为总执行时间增加了大量的启发式,因为映射器可能正在等待资源而根本不运行.但是你可以尝试测量时间,看看这个关于如何衡量执行时间的答案:https://stackoverflow.com/a/44872319/2700344
SELECT * FROM table WHERE column IS NOT NULL 虽然所有查询都是正确的,但更直接(可理解/可读).