最快的方法 SELECT * WHERE not null
Fastest way to do SELECT * WHERE not null
我想知道获取所有非空行的最快方法是什么。我想到了这些:
SELECT * FROM table WHERE column IS NOT NULL
SELECT * FROM table WHERE column = column
SELECT * FROM table WHERE column LIKE '%'
(我不知道如何在 SQL and/or Hive 中测量执行时间,并且在 pgAdmin 中反复尝试 4M 行 table,我没有发现明显的差异.)
在 Hive 上 运行 执行这些查询时,您永远不会注意到性能有任何差异,因为这些操作非常简单,而且 运行 在并行 运行 的映射器上执行。
Initializing/starting 映射器花费的时间比这些查询的执行时间可能存在的差异要多得多,并且在总执行时间中增加了很多试探法,因为映射器可能正在等待资源而不是 运行宁在所有。
但是您可以尝试测量时间,请参阅有关如何测量执行时间的答案:
SELECT * FROM table WHERE column IS NOT NULL
更直接 (understandable/readable) 尽管所有查询都是正确的。
我想知道获取所有非空行的最快方法是什么。我想到了这些:
SELECT * FROM table WHERE column IS NOT NULL
SELECT * FROM table WHERE column = column
SELECT * FROM table WHERE column LIKE '%'
(我不知道如何在 SQL and/or Hive 中测量执行时间,并且在 pgAdmin 中反复尝试 4M 行 table,我没有发现明显的差异.)
在 Hive 上 运行 执行这些查询时,您永远不会注意到性能有任何差异,因为这些操作非常简单,而且 运行 在并行 运行 的映射器上执行。
Initializing/starting 映射器花费的时间比这些查询的执行时间可能存在的差异要多得多,并且在总执行时间中增加了很多试探法,因为映射器可能正在等待资源而不是 运行宁在所有。
但是您可以尝试测量时间,请参阅有关如何测量执行时间的答案:
SELECT * FROM table WHERE column IS NOT NULL
更直接 (understandable/readable) 尽管所有查询都是正确的。