怎么可能这个(Oracle)SQL:
select a.*, rank() over (partition by a.field1 order by a.field2 desc) field_rank
from table_a a
order by a.field1, a.field2
Run Code Online (Sandbox Code Playgroud)
被翻译成MySQL?
这个问题看起来很相似,但在基本查询的最后没有Order By.此外,它是否由分区字段排序?
鉴于查询简化为以下形式:
select b.field1
from table_a a
inner join table_b b on b.field1 = a.field1
left join table_c c on c.field1 = a.field1
left join table_d d on d.field1 = b.field1
left join table_e e on e.field1 = b.field6
group by b.field1,
b.field2,
b.field3,
b.field4,
b.field5,
e.field2,
e.field3
;
Run Code Online (Sandbox Code Playgroud)
使用一定数量的数据,它在Oracle中运行20秒.Oracle中没有任何索引编入索引.迁移到MySQL后,查询不想完成(在几分钟内执行).有问题的每个字段都在MySQL中编入索引.Explain告诉一切都很好.
仍然无法工作后,分组字段获得多列索引.依然没有.
MySQL性能仍然存在巨大漏洞的问题是什么?有没有办法加快速度?