我在一个数据库中有3个表:防火墙、接口和更改。
防火墙有两列: id
以及 name
.
接口有3列: id
, firewall id
以及 name
哪里 firewall id
是防火墙主键。
更改有多个列,包括 firewall id
以及 interface id
. 我们把这些列称为 changes.id
, firewall id
, interface id
,
port src
,和 dest
哪里 changes.id
是更改主键和自动增量。 changes
最终将有数千或数百万行的数据。
我需要一个查询,将选择的唯一组合的最后一组 firewall id
, interface id
, src
, dest
,和 port
从 changes
. 我最后说,因为随着时间的推移,很可能会有完全相同的。
我有一个查询可以做到这一点,但我认为当这个表变大时,它的cpu开销会非常大:
SELECT DISTINCT f.name, i.name, changes.a, changes.b, src, dest, port FEOM changes INNER JOIN firewall f ON changes.a = f.id INNER JOIN interface i ON changes.b = i.id ORDER BY changes.id DESC;
有没有更好的办法?
暂无答案!
目前还没有任何答案,快来回答吧!