java - 在MySQL端或在Java端使用复杂的 boolean 值来限制一个ResultSet更快吗?

标签 java database boolean-operations

假设我有一个非常大的表,里面装满了很多数据(比如,足够多,无法轻松地放入内存),我想分析行的一个子集。

这样做通常更快吗:

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/

相关文章:

java - 在 React-Native 中使用 Android 运行 CodePush

sql-server - 使用 TSQL 的按位操作,如旋转、选择性位反转

Java:如何在贪吃蛇游戏中使用双缓冲以获得流畅的动画?

java - 使用基于代码的配置获取 java.lang.NoSuchMethodException : org. apache.catalina.deploy.WebXml addServlet

mysql - 如何在 MySQL 中从左边找到最佳匹配

mysql - 表中的自连接和递归选择

使用 Julia 进行数据库抽象

c++ - 在 C++ 中使用十六进制字符串的按位函数 AND、OR 和 XOR

ios - Swift 在 Alamofire 参数中发送 bool 值

java - 反序列化加密的对象列表