LINUX.ORG.RU

Разработчики MySQL начали работу над ее форком - Drizzle

 , , , , ,


0

0

Брайан Акер, директор по архитектуре MySQL, анонсировал Drizzle - форк MySQL, предназначенный для веб-сайтов с высокой степенью параллелизма и лишенный всей "излишней" функциональности.

Из MySQL планируется убрать views, triggers, prepared statements, stored procedures, query cache и другие фичи. Взамен добавят микроядерную архитектуру и последнюю версию InnoDB (основного транзакционного движка для MySQL, сейчас им владеет Oracle).

>>> Подробности

Название некошерное. А так - очень интересно. Ждём ебилдов.

KRoN73 ★★★★★
()

ну stored procedure оставили б хотя б, ща их в сайтах юзаем даж, иначе совсем задница будет, даж дерево записей нормальное не выбрать в один проход.

BaBL ★★★★★
()

> Из MySQL планируется убрать views, triggers, prepared statements, stored procedures, query cache и другие фичи.

Системно мыслят, всё равно подобную функциональность в последнее время стало модно перекладывать на ORM и сопутствующие прослойки, а монстро-оракел какбэ и не нужна.

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

anonymous
()
Ответ на: комментарий от anonymous

>> Из MySQL планируется убрать views, triggers, prepared statements, stored procedures, query cache и другие фичи.

> Системно мыслят, всё равно подобную функциональность в последнее время стало модно перекладывать на ORM и сопутствующие прослойки, а монстро-оракел какбэ и не нужна.

но выглядит это интересно - они эти фичи в 5.0 добавили а теперь удалять собрались :-).

gods-little-toy ★★★
() автор топика

>планируется убрать views, triggers, prepared statements, stored procedures, query cache и другие фичи

давайте еще уберем PK,FK и будем пользоваться только bdb.

borisych ★★★★★
()

>prepared statements

для начала их бы реализовали полноценно. а то собсно убирать то и нечего :)

Deleted
()

Dragon Fly MySQL :-)

anonymous
()
Ответ на: комментарий от anonymous

>Системно мыслят, всё равно подобную функциональность в последнее время стало модно перекладывать на ORM и сопутствующие прослойки, а монстро-оракел какбэ и не нужна.

и как ORM без тригеров поживает?

borisych ★★★★★
()
Ответ на: комментарий от anonymous

> Другое дело, что проще отучить SQLite блокировать всю базу при записи, и ихний дризл тогда ваще будет не нужен.

вроде как отучили, или я ошибаюсь ?

phasma ★☆
()
Ответ на: комментарий от borisych

>и как ORM без тригеров поживает?

??? Можете объяснить свой ход мысли?

А то я уже 8 лет используют ORM без всяких триггеров.

anonymous
()

Это скорее не форк, а отдельный прожект основанный на мускуле. а -то думал они не согласные тем что их сан купил...

AiFiLTr0 ★★★★★
()
Ответ на: комментарий от anonymous

>А то я уже 8 лет используют ORM без всяких триггеров.

ну вот пример: есть к примеру локальная база фильмов, соответственно есть табличка с фильмами (название, год выхода, описание), табличка с файлами (id_фильма, размер, продолжительность), табличка с актерами (имя), табличка для связи фильм-актер. теперь мне требуется сделать следующее: вывести список фильмов с названием, годом выпуска, общим размером и пролжительностью; вывести список актеров с количеством фильмов, в которых снимались. теперь оцените затраты на использование в таких задачах ORM и тригеров.

borisych ★★★★★
()

пускай еще движок SQL уберут

anonymous
()
Ответ на: комментарий от BaBL

>ну stored procedure оставили б хотя б

Вместо того, чтобы из "stored procedures" сделать "precompiled stored procedures", и то что было убирают? ИМХО маразм...

Led ★★★☆☆
()

Я тока не пойму, что там останется то когда они все это уберут?

txt | grep ?

APM
()

>Из MySQL планируется убрать views, triggers, prepared statements, stored procedures, query cache и другие фичи.

А форкнули тройку?:))

r ★★★★★
()
Ответ на: комментарий от borisych

>вывести список актеров с количеством фильмов, в которых снимались. теперь оцените затраты на использование в таких задачах ORM

Элементарно.

r ★★★★★
()

так они же недавно сделали полу-новый движок, Maria -- отказоустойчивый клон MyISAM

vadiml ★★★★★
()

....И получиться недо-sqlite...

anonymous
()
Ответ на: комментарий от r

>Элементарно.

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

borisych ★★★★★
()
Ответ на: комментарий от borisych

Ну, у меня ORM хорошо без триггеров живёт. Что, я где-то подводные камни не заметил? Ткни пальцем...

KRoN73 ★★★★★
()

Видимо, людям захотелось поэкспериментировать. Что это за сервер баз данных без views, prepared statements, stored procedures...

> Я тока не пойму, что там останется то когда они все это уберут? txt | grep ?

+1

Ulysses
()

Ы. Флаг в руки. С таким набором фич их sqlite затопчет.

atrus ★★★★★
()
Ответ на: комментарий от borisych

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

А если по-правильному - такое действительно надо делать триггерами или все-таки materialized view хорошо бы?

Концептуально materialized view правильнее... проблема в том что сейчас любая доступная dbms полезет его весь пересчитывать...

gods-little-toy ★★★
() автор топика
Ответ на: комментарий от borisych

Есть случаи, когда три простых запроса ного эффективнее одного сложного.

Кстати, как ты, вообще логику работы ORM в описанном тобой случае представляешь?

KRoN73 ★★★★★
()

> stored procedures

После написания оных для мускуля надо I Группу инвалидности давать :-/

nikolayd
()

типа ура! ? (осторожно так).

tommy ★★★★★
()
Ответ на: комментарий от borisych

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

Не внял вопросу:

1. Просили вывести - то есть читать. 2. В представленной схеме не вижу зачем что-то наполнять триггерами. Или это делается чтобы по имени актера мрачном вызове хранимки вычислять запись и делать соответствующие вставки? 3. Вставка десятка записей в указанной базе данных - вещь редкая в контексте времени и имеет небольшое время выполнения - любая реализация будет иметь приемлемую производительность.

r ★★★★★
()
Ответ на: комментарий от KRoN73

>Кстати, как ты, вообще логику работы ORM в описанном тобой случае представляешь?

как-как, в ORM придется обратиться к объекту фильм, для него найти соответствующие объекты "файл", посчитать их количество и размер. для актеров аналогично. Если я дальше захочу сортировать выводимый список по этим вычислимым атрибутам, то наступит полный ахтунг.

по поводу mview - здесь они не помогут: во-первых, они все-таки предназначены для DW а не для OLTP, во вторых не укладываются в логическую модель: вставляем в таблицу, а выбираем из mview

borisych ★★★★★
()
Ответ на: комментарий от borisych

>как-как, в ORM придется обратиться к объекту фильм, для него найти соответствующие объекты "файл", посчитать их количество и размер. для актеров аналогично. Если я дальше захочу сортировать выводимый список по этим вычислимым атрибутам, то наступит полный ахтунг.

Ничего этого не будет в нормальном орме. Если ты выводишь список фильмом весь фрейм вывода (страница) будет поднята запросами количеством от 1 до 3х.

r ★★★★★
()
Ответ на: комментарий от BaBL

>ну stored procedure оставили б хотя б, ща их в сайтах юзаем даж, иначе совсем задница будет, даж дерево записей нормальное не выбрать в один проход.

Юзайте Hibernate или EJB3.

iZEN ★★★★★
()
Ответ на: комментарий от r

>Ничего этого не будет в нормальном орме

я кажется пример просил. даже если у Вас есть какой-то гипотетический ORM, который прверащает вывод любого списка в SQL с правильным group by, having и пр, в чем я очень сильно сомневаюсь, то все равно заполение нужных атрибутов тригерами, а потом обычная выборка быстрее на порядки.

borisych ★★★★★
()
Ответ на: комментарий от r

> Ничего этого не будет в нормальном орме. Если ты выводишь список фильмом весь фрейм вывода (страница) будет поднята запросами количеством от 1 до 3х.

Да даже если одним.. как я понимаю будет что-то вроде

SELECT actor.primary_key actor.name, COUNT(actor_films) FROM actor NATURAL JOIN film GROUP BY actor.name, actor.primary_key WHERE <какое там условие на актеров у нас>;

И если актеры в списке плодовитые, то пиши пропало - все dbms полезут перебирать фильмы. *может быть* Oracle сумеет ограничиться быстрыми оценками по films.actor_id, остальные кого я знаю полезут в таблицу...

gods-little-toy ★★★
() автор топика
Ответ на: комментарий от markevichus

> query cache Это конечно же излишество. Может, чтоило действительно _форкнуть_ MySQL?

и разрешило взять все но выкинуть query cache ?

gods-little-toy ★★★
() автор топика
Ответ на: комментарий от gods-little-toy

>SELECT actor.primary_key actor.name, COUNT(actor_films) FROM actor NATURAL JOIN film GROUP BY actor.name, actor.primary_key WHERE <какое там условие на актеров у нас>;

там связь many-to-many, в жойне будет три таблицы

borisych ★★★★★
()
Ответ на: комментарий от gods-little-toy

> SELECT actor.primary_key actor.name, COUNT(actor_films) FROM actor NATURAL JOIN film GROUP BY actor.name, actor.primary_key WHERE <какое там условие на актеров у нас>;

энто че за диалект такой, где group by перед where идет? o_O

anonymous
()
Ответ на: комментарий от borisych

>> SELECT actor.primary_key actor.name, COUNT(actor_films) FROM actor NATURAL JOIN film GROUP BY actor.name, actor.primary_key WHERE <какое там условие на актеров у нас>;

> там связь many-to-many, в жойне будет три таблицы

ой, действительно... но ситуацию c производительностью это ни в коем случае не улучшит...

gods-little-toy ★★★
() автор топика
Ответ на: комментарий от borisych

>я кажется пример просил

Hibernate/ObjectRelationalBridge/ крайний случай - iBatis.

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

Вся фигня в том что в орме не надо превращать этого в одну выборку. Как я сказал он сделает это тремя в самом простом случае - выберет фильмы, для сделаной выборки выберет прилинкованых актеров и прилинкованные файлы.

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

r ★★★★★
()
Ответ на: комментарий от borisych

Я же писал выше - три простых запроса.

Пример реальный сейчас не приведу, так как из ОперыМини пишу перед сном заглянув с коммуникатора на ЛОР. Завтра с утра, если не поломает, приведу соответствующий код на моём ORM.

KRoN73 ★★★★★
()
Ответ на: комментарий от r

Я согласен. Зачем делать сложный запрос, когда можно поднять всю базу и слинковать все дерево в памяти. В концепции ORM база данный вторична, она всего лишь хранилище, которая поддерживает, трасакции, что бы откатить, если че случится

Extremal
()

О, наука!
Кастрированый быстрый mysql. Хотя, не каждому эти фичи нужны всегда.

Nicko
()

а почему бы и нет?

anonymous
()
Ответ на: комментарий от r

>Вся фигня в том что в орме не надо превращать этого в одну выборку. Как я сказал он сделает это тремя в самом простом случае - выберет фильмы, для сделаной выборки выберет прилинкованых актеров и прилинкованные файлы.

простите великодушно, я безнадежно туп. Допустим Ваш кибернейт осилил сделать select name, year from films where year>2006 order by name, а потом забомбить select count(file),sum(size) from files where film_id in (...) group by film_id (насколько я понял ваш ORM делать жойны не умеет). а теперь представьте, что я решил свой список упорядочить по размеру и количеству файлов, с таким подходом вам примется полностью перелопатить две таблицы.

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

у меня не сложный запрос, а простой, поскольку count(file), sum(size) будут сразу храниться в таблице с фильмами и будут считаться тригерами. Если Вам не западло из ORM заполнять эти же поля (то есть полностью вынести логику из БД) и поэтому тригеры Вам не нужны, то прекрасно, только сопровождать код и базу будет на порядок сложнее.

borisych ★★★★★
()
Ответ на: комментарий от Extremal

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

теперь допустим, что размер БД, ну скажем гигабайт 10, в жаву столько не влезет при всем желании.

borisych ★★★★★
()
Ответ на: комментарий от borisych

>(насколько я понял ваш ORM делать жойны не умеет)

Умеет но не в этом суть.

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

Зачем? Денормализация. В случае кризиса скорости сортировки по синтетическим значениям - то же самое делается добавлением физических аттрибутов с апдейтом их на уровне триггеров или на уровне орма. Подойдите проще - вам нужна работающая система - а не база нормализованная по самое нихочу которая умеет все включая ограбление корованов.

>Если Вам не западло из ORM заполнять эти же поля (то есть полностью вынести логику из БД) и поэтому тригеры Вам не нужны, то прекрасно, только сопровождать код и базу будет на порядок сложнее.

С какой радости? ОРМ это еще один уровень индирекшена. Для вса что принципиальный вопрос писать триггер на PL/блабла или вешать в орме "on update" на языке системы? Да можно сделать и тригерами базы - орму от этого плохо не будет. Не говоря уж о том что если взять гипотетическую систему с ОРМом - то в случае добавления к фильму файла - вызов метода модифицирующего клллекцию - можно написать перечет атрибута - это значительно проще чем писать тригер. Или замапить этот атрибут через выражение (правда это я уже фантазирую - не проверал умеет ли кто-то так поскольку с ормами последний раз имел дело 4 года назад - но принципиальных проблем сдесь нет).

r ★★★★★
()
Ответ на: комментарий от borisych

Ну да, давайте все перенесем в application level или вообще забудем о базе данных - нах она вообще нужна?
Ъ-сайтописатели в СУБД вообще не нуждаюццо :ржачь: :D

Кстати, об ОРМ: интересно, а как организовать на ее уровне обработку событий таблицы? :) ORM - это Object-Relational Model или кто-то думает иначе?

Имхо, глупостями занимаюццо. Такая база годится только для мелких быдлокодерских проектов, которыми и так весь инет переполнен.

Gadeshi
()
Ответ на: комментарий от r

>Для вса что принципиальный вопрос писать триггер на PL/блабла или вешать в орме "on update" на языке системы?

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

borisych ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.