![]() |
1
0
为group by使用派生表,然后重新连接到要从中选择的任何表上 |
![]() |
2
0
既然看起来没有一个简单的答案,我现在就用一个便宜的解决方案。 什么我 将 应该是这样的:
然而,根据它如何得到
这个问题仍然可以用更干净的解决方案来回答,如果不是更好的话:) |
![]() |
3
0
在第一个查询中,您访问的唯一字段位于索引中,因此mysql只需查看索引文件。但是在第二个查询中,您现在从表本身提取一个列,这也需要读取表数据。第一个查询并没有像使用
第一个查询和第二个查询的区别在于,第二个查询必须查看完整表中的每一行(也称为表扫描),而不仅仅是索引中的每一个主键值。 就优化而言,如果您的实际查询没有如示例中那样的累积函数(SUM、COUNT等),那么应该会看到一个重大改进:
但是,如果您的简单示例仅如此,并且您的查询确实需要一个组,那么您的下一个最佳选择是增加 tmp_table_size and max_heap_table_size 变量以允许同时在内存中容纳更多行。 |
![]() |
hello_programmers · Mysql从其他表输出一列 2 年前 |
![]() |
Community wiki · 这个MySQL语句出了什么问题? 2 年前 |
![]() |
Community wiki · 优化从同一表中提取的多列的查询 2 年前 |
![]() |
Popo · Sql查询:返回数据库中不可用的where条件 2 年前 |
|
Hamdan Nuramdani · 对账单中一周内不同表中的数据求和 2 年前 |
|
Kugelfisch · 用php为数据库加密数据 2 年前 |