sql—执行select*的最快方法,其中不包含null

mfuanj7w  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(639)

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

  1. SELECT * FROM table WHERE column IS NOT NULL
  2. SELECT * FROM table WHERE column = column
  3. SELECT * FROM table WHERE column LIKE '%'

(我不知道如何在sql和/或hive中度量执行时间,并且通过在pgadmin中反复尝试4m行表,我没有得到明显的区别。)

hfsqlsce

hfsqlsce1#

在配置单元上运行这些查询时,您永远不会注意到性能上的任何差异,因为这些操作非常简单,并且在并行运行的Map器上运行。
初始化/启动Map程序所需的时间比这些查询的执行时间可能的差异要长得多,并且会向总执行时间中添加大量启发式操作,因为Map程序可能正在等待资源而根本没有运行。
但是你可以试着测量时间,看看这个关于如何测量执行时间的答案:https://stackoverflow.com/a/44872319/2700344 SELECT * FROM table WHERE column IS NOT NULL 虽然所有的查询都是正确的,但是更直接(可以理解/可读)。

相关问题