Эффективный запрос для выбора четкой комбинации строк - PullRequest
0 голосов
/ 25 мая 2018

У меня есть 3 таблицы в базе данных: брандмауэр, интерфейс и изменения.

  • брандмауэр имеет 2 столбца: 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, destport от changes.Я говорю последнее, потому что со временем, скорее всего, будут точные дубликаты.

У меня есть запрос, который сделает это, но я думаю, что это будет очень дорого, когда эта таблица станет большой:

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;

Есть ли лучший способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...