Задавайте вопросы, мы ответим
Вы не зашли.
Всегда считал, что комиксы отупляюще действуют на сознание. Но сейчас смотрю на буржуйскую картинку и думаю - может наоборот у них развиты недоступные мне грани визуализации информации?
Цвет на картинке означает с какой версии доступен тот или иной способ оптимизации.
Какой смысл окрашивать пункт одновременно желтым и синим цветом?
Неактивен
Скорее всего это означает, что функция реализована в 5.5 частично, а в 5.6 доделана.
Неактивен
Не, у MySQL это только в 5.6.5 появилось.
Неактивен
А может быть это частично реализовано в MariaDB 5.5?
Неактивен
Изначально это для MySQL 6.0 было сделано, потом дорабатывалось напильником в каждом случае независимо, но глобальных отличий у них нет.
Кстати в прошлом варианте картинки такого нет, зато неясен смысл смешения цветов для materialization
Что-то они все-таки подразумевают.
Неактивен
Мне кажется, что тут все просто:
голубой - только в MariaDB 5.3, но нет в MySQL
желтый - в MariaDB 5.3 перенесено из MySQL 6.0
Смешение - значит, что фича частично перенесена из MySQL 6.0, а частично разработана специально для MariaDB. В итоге в MariaDB это реализовано шире (полнее), чем в MySQL 6.0, но в последнем такая фича тоже есть (но функционал недостаточен по мнению Monty).
Неактивен
С этим согласен, выглядит логично, а что с первой картинкой?
Димка обращает внимание на то, что там величина синей области везде различна.
Неактивен
Первая картинка по аналогии.
Желтое - то, что есть в MySQL 5.6 и MariaDB 5.5
Синее - то, что есть в MySQL 5.6, но нет в MariaDB 5.5
Величина синей области - оценка доли таких фич.
Неактивен
Не понимаю.
Синее это подмножество желтого.
Например, "Table pullout" реализован и там, и там. Какой смысл его обозначать желтым+синим цветом.
Понятно, если бы какая-нибудь стратегия была реализована только в MySQL 5.6 и соответственно целиком обозначена синим цветом. Но такого нет.
Например, кэш подзапрпосов есть только в MariaDB5.5 вот его целиком зеленым и обозначают.
Или ты имеешь в виду, что величина синий области характеризует отличие в реализации данной оптимизации (при переносе из 6.0 каждый дорабатывал напильником самостоятельно)?
Неактивен
> Синее это подмножество желтого.
Логически, синее и желтое - два непересекающихся множества.
Давай назовем множестом R - возможности MariaDB 5.5, а множеством S - возможности MySQL 5.6.
Два множества, пересекаясь (если считать их кругами) делят пространство на 4 области. Формально:
!R & !S - [не нанесено на схеме] то, что не реализовано ни в MariaDB 5.5 ни в MySQL 5.6
R & S - [желтое], то, что есть и в MariaDB 5.5 и в MySQL 5.6
R & !S - [зеленое], то, что есть в MariaDB 5.5, но нет в MySQL 5.6
!R & S - [синее], то, чего нет в MariaDB 5.5, но есть в MySQL 5.6
Например, Table pullout может состоять из ряда возможностей. Согласно диаграмме часть этих возможностей есть и в MariaDB 5.5 и в MySQL 5.6, а часть только в MySQL 5.6.
Неактивен
Выглядит логично, но с т.з. логики крокодил более зеленый чем длинный, так как зеленый он и в длинну, и в ширину.
Сомнения:
1. "Table pullout" прост как пробка - если есть возможность переписать подзапрос в join на основании primary/unique ключа, который гарантирует отсутствие дубликатов, то он переписывается как join.
2. Получается, что в MySQL все оптимизации выполнены лучше, так как нигде нет желтый+синий+зеленый.
Неактивен
1. Про конкретные фичи можно спросить у Монти что он имел в виду под синим. Может быть это специальный синтаксис, введенный в MySQL 5.6, которого нет в MariaDB.
2. Для материализации фактически желтый+синий+зеленый, просто зеленый квадрат расширен и получил отдельный заголовок. В других случаях, возможно, из скромности не подчеркиваются отличия MariaDB.
Неактивен
1. https://mariadb.com/kb/en/subquery-opti … omment_967
2. Там речь идет об отдельном виде подзапросов, которые с группировкой. И в старой картинке они тоже были отдельно выделены зеленым.
Неактивен