java - 在SQL优化中,我们是否应该总是使用LIMIT来防止系统下载大量数据?或者还有其他更好的解决方案吗?

标签 java sql optimization

好吧,比如说,有一个表有百万条记录。然后我们需要一个查询

Select column1 from tbl where column1 like '%a%';

假设这个查询的结果将被用在一个程序中来检查一些信息,并且这个程序需要所有结果数据来检查 --> 所以我们不能零散地获取数据。

如果我们分段获取数据,那么我们必须使用 LIMIT。

但是如果我们运行该查询,那么它会下载大量数据并使系统变慢。

问题:还有其他优雅的解决方案吗?

最佳答案

his program need all result data for checking

如果程序需要所有数据来检查它需要检查的内容,那么就没有办法解决这个问题:您需要从 RDBMS 下载所有数据。

但是,通常您不需要将所有数据存储在内存中:如果可以通过一次检查一行来检查数据,那么您可以一次读取一行数据,检查它,然后丢弃行。这种方法提供了一种很好的分页替代方案,因为您只需发送一个查询,非分页查询通常比分页查询更易于使用。

关于java - 在SQL优化中,我们是否应该总是使用LIMIT来防止系统下载大量数据?或者还有其他更好的解决方案吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16080955/

相关文章:

java - 如何在渲染 View 之前预加载java方法

java - 使用 cmu sphinx 进行语音识别 - 无法正常工作

java - 在正则表达式中重复捕获组

mysql - DATE 字段上的 INDEX 和 MONTH() YEAR() 函数

java - 如何使用 JOptimizer 或任何其他 Java 库解决给定的优化任务?

java - 是否可以让 ProGuard 使用 RetentionPolicy.SOURCE 保留元素?

mysql - MySQL 中何时使用单引号、双引号和反引号

MySQL 乘法输出和 Perl DBI

C++ - 引用参数的常量值?

performance - 计算以下产品的快速方法