好吧,比如说,有一个表有百万条记录。然后我们需要一个查询
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/