sql - 执行 SELECT * WHERE not null 的最快方法

标签 sql hive null query-optimization hiveql

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

SELECT * FROM table WHERE column IS NOT NULL

SELECT * FROM table WHERE column = column

SELECT * FROM table WHERE column LIKE '%'

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

最佳答案

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

初始化/启动映射器花费的时间比这些查询的执行时间可能的差异要多得多,并且会为总执行时间增加很多启发式方法,因为映射器可能正在等待资源而根本没有运行。

但是您可以尝试测量时间,请参阅有关如何测量执行时间的答案:https://stackoverflow.com/a/44872319/2700344
SELECT * FROM table WHERE column IS NOT NULL尽管所有查询都是正确的,但更直接(可理解/可读)。

关于sql - 执行 SELECT * WHERE not null 的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45998415/

相关文章:

hive - Hadoop HIVE - 如何查询部分行

java - Java中如何检查对象是否为null?

sql - 合并以更新所有目标表列

string - Hiveql - RIGHT() LEFT() 函数

mysql - 更正错误的 insert-from-select SQL 语句

hive - 配置单元中的映射类型变量

java - 从循环中将 null 放入数组

java 堆栈 NullPointerException

mysql - 我如何离开加入子查询

php - "multiplying"MySql 记录有什么方法可以测试服务器上的大型数据库吗?