Подтвердить что ты не робот

Представления MySQL - когда использовать & когда не

Руководство по сертификации mysql предполагает, что представления могут использоваться для:

  • создание сводки, которая может включать вычисления
  • выбор набора строк с предложением WHERE, скрытие нерелевантной информации
  • результат объединения или объединения
  • разрешить изменения, внесенные в базовую таблицу, через представление, которое сохраняет схему исходной таблицы для размещения других приложений.

но из как реализовать поиск двух разных табличных данных?

И, может быть, вы правы, что это не работать, поскольку представления mysql не очень хорошие друзей с индексацией. Но все равно. Является есть что искать в магазин стола?

Я узнаю, что представления не работают с индексацией, так что это будет большой успех, для удобства, которое он может предоставить?

4b9b3361

Ответ 1

Этот mysql-forum-thread о представлениях индексирования дает много понимания того, какие представления mysql на самом деле есть.

Некоторые ключевые моменты:

  • Вид действительно не что иное, как хранимый оператор select
  • Данные представления - это данные таблиц, на которые ссылается вид.
  • создание индекса в представлении не будет работать с текущей версией
  • Если используется алгоритм слияния, будут использоваться индексы базовых таблиц.
  • Однако базовые индексы не видны. DESCRIBE в представлении не покажет индексированные столбцы.

Ответ 2

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

Это дает вам дополнительные преимущества.

  • повторное использование
  • единственный источник для оптимизации

Ответ 3

Еще одна нижняя сторона представления, которая не работает с репликатором mysql, а также приводит к тому, что мастер немного отстает от подчиненного устройства.

http://bugs.mysql.com/bug.php?id=30998

Ответ 4

Согласно http://www.mysqltutorial.org/introduction-sql-views.aspx

В таблице базы данных не должны быть рассчитаны столбцы, однако представление базы данных должно.

Я имею тенденцию использовать представление, когда мне нужно рассчитать итоговые значения, количество и т.д.

Надеюсь, что поможет!

Ответ 5

Представления MySQL, согласно официальной MySQL документации, хранятся в запросах, которые при вызове создают результирующий набор.

Представление базы данных - это не что иное, как виртуальная таблица или логическая таблица (обычно это запрос SELECT с объединениями). Поскольку представление базы данных аналогично таблице базы данных, которая состоит из строк и столбцов, поэтому вы можете запрашивать данные против нее.

Представления должны использоваться, когда:

  • Упрощение сложных запросов (например, EL ELSE и JOIN или работа с триггерами и т.д.)
  • Предоставление дополнительного уровня безопасности и ограничение или ограничение доступа к данным (поскольку представления - это просто виртуальные таблицы, их можно настроить только для чтения конкретному набору пользователей БД и ограничить INSERT)
  • Обратная совместимость и повторное использование запросов
  • Работа с вычисленными столбцами. Вычисляемые столбцы НЕ должны быть в таблицах БД, потому что схема БД была бы плохим дизайном.

Представления не должны использоваться, если:

  • ассоциированная таблица является/предварительной или подвержена частым изменениям структуры.