假设我有一个非常大的表,里面装满了很多数据(比如,足够多,无法轻松地放入内存),我想分析行的一个子集。
这样做通常更快吗:
SELECT (column1, column2, ... , columnN) FROM table WHERE (some complicated boolean clause);
然后使用 ResultSet,还是这样做更快:
SELECT (column1, column2, ... , columnN) FROM table;
然后遍历 ResultSet,根据 boolean 条件的 Java 版本接受不同的行?
我认为这归结为 Java 迭代器/boolean 求值器是否比 MySQL boolean 求值器更快。
最佳答案
将条件发送到数据库几乎肯定会更快。
- 您可以避免传输不需要的大量行数据。
- 数据库可能会使用比表扫描更快的方法。它可能能够使用一个索引,使其能够更快地找到感兴趣的行,而不必检查每一行的条件。
关于java - 在MySQL端或在Java端使用复杂的 boolean 值来限制一个ResultSet更快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2706335/