![]() |
1
2
首先,您应该使用union all而不是plain union。使用普通联合,引擎将尝试消除结果集的重复。这可能是你问题的根源。 其次,在两个表中都需要所有者的索引,而不仅仅是一个。理想情况下,它们将是整型列。 第三,Randolph是对的,您不应该在select语句中使用“*”。列出所有要包含的列。这在联合中尤其重要,因为列必须完全匹配,如果两个表中的列顺序不一致,则可能会强制进行某种类型转换,这会花费您一些时间。 最后,短语“有两个相同的表”几乎总是提示您的数据库没有进行优化设计。这些可能是一张桌子。为了表明物品的所有权,您的安全箱表应该只包含物品的所有者ID和项目ID(与设备和玩家相关),并且可能包含一个额外的自动编号的整数键列。 |
![]() |
2
0
首先,不要在视图中使用select*。这是懒惰的代码。其次,在不知道基表是什么样子的情况下,我们更不可能帮助您。
它之所以需要永远,是因为它必须构建完整的结果,然后对其进行过滤。您需要索引
|
![]() |
hello_programmers · Mysql从其他表输出一列 1 年前 |
![]() |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
![]() |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |
![]() |
Popo · Sql查询:返回数据库中不可用的where条件 1 年前 |
|
Hamdan Nuramdani · 对账单中一周内不同表中的数据求和 1 年前 |
|
Kugelfisch · 用php为数据库加密数据 1 年前 |