我正在连接到一个我无法管理的数据库,我编写了一个查询,它在两个表之间进行了左连接--一个小表和一个大几个数量级的表。他们给出的原因是,当按我的方式完成时,MySQL将尝试创建一个太大的临时表,而查询将失败。他们的解决方案在其他地方失败了,但这在这里并不重要。我的问题是--一般情况下,这样做的方式('small_table LEFT join large_table')是糟糕的做法,还是这样的查询可以通过适当的索引成功地执行呢?编辑:下面是查询的样子(这不是实际的查询,
我将使用Hibernate和MySQL在Java中生成简单的CSV文件报告。我使用的是本机SQL (因为查询太复杂了,HQL或条件查询是不可能的,这里也不重要),Hibernate的一部分用来获取数据并使用任何CSVWriter api编写数据(这在这里并不重要)。问题:
MySQL Indexing不能用于finalValue列(上述),因为它是聚合函数的复杂组合。因此,如果使用排序执行查询(有或无限制),则需要40秒,否则是0.075秒。使用java.util.TreeSet进行