我想知道获得所有非空行的最快方法是什么。我想过这些:
SELECT * FROM table WHERE column IS NOT NULL
SELECT * FROM table WHERE column = column
SELECT * FROM table WHERE column LIKE '%'(我不知道如何在SQL和/或Hive中测量执行时间,通过在pgAdmin中反复尝试4M行表,我没有发现明显的差别。)
发布于 2017-09-01 12:08:22
在Hive上运行这些查询时,您永远不会注意到性能上的任何差异,因为这些操作非常简单,并且在并行运行的映射程序上运行。
初始化/启动映射程序所花费的时间比这些查询的执行时间可能要长得多,并且在整个执行时间中增加了很多启发式,因为映射器可能在等待资源而根本不运行。
但是您可以尝试测量时间,请参阅有关如何度量执行时间的答案:https://stackoverflow.com/a/44872319/2700344
尽管所有的查询都是正确的,但SELECT * FROM table WHERE column IS NOT NULL更直观(可以理解/可读)。
https://stackoverflow.com/questions/45998415
复制相似问题