Лучше использовать одно большое представление, чем два меньших (в памяти и обработке) - PullRequest
0 голосов
/ 27 декабря 2018

Я разрабатываю информационную систему, в которой большинство запросов включает одинаковые наборы таблиц.Первая требует объединения 10 таблиц (включая некоторое LEFT JOIN), а вторая требует объединения 10 таблиц (и использования агрегатных функций) с еще одной таблицей.Система использует MySQL.

Какая опция лучше для производительности системы и использования памяти?

  • Использование одного представления с участием 11 таблиц (все условия заданы снаружи)
  • Использование одного представления, включающего 10 таблиц, и использование соединения снаружи для другой таблицы.
  • Использование одного представления, включающего 10 таблиц, и другое представление, объединяющее представление и другую таблицу (агрегированные).
  • другие варианты

1 Ответ

0 голосов
/ 27 декабря 2018

Представления в MySQL не материализуются, поэтому производительность и объем памяти представления в значительной степени зависят от основного запроса.При этом, если вам нужны два представления, выполняющие разные (хотя, возможно, слегка похожие) запросы, я рекомендую использовать только два разных представления.

Что касается производительности двух представлений, вам следует сосредоточиться на базовомзапросы.Это приводит к таким понятиям, как индексы и нормализация, которые могут быть важны для правильной работы запроса.

...