URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 126049
[ Назад ]

Исходное сообщение
"Один из разработчиков MySQL раскритиковал проект и рекомендовал использовать PostgreSQL"

Отправлено opennews , 06-Дек-21 11:21 
Штайнар Гундерсон (Steinar H. Gunderson), один из авторов библиотеки сжатия Snappy и участник разработки IPv6, объявил о возвращении в компанию Google, в которой в своё время занимался разработкой сервисов поиска по изображениям и offline-картами, но теперь будет вовлечён в разработку браузера Chrome. До этого Штайнар в течение пяти лет работал в Oracle над модернизацией оптимизатора СУБД MySQL. Заметка Штайнара примечательна критическим отношением к перспективам MySQL и рекомендацией переходить на PostgreSQL...

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=56287


Содержание

Сообщения в этом обсуждении
"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 11:21 
всегда использовал слоника заместо вот этого вот детища оракула

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено _hide_ , 06-Дек-21 11:25 
>>> всегда использовал слоника

Тот, кто так говорит, явно не мог его использовать 12+ лет назад. Значит использует лет 5 от силы, т.е. для проектов однодневок. Возможно в этом и причины их мимолетности.

>>> детища оракула

Ну это полностью подтверждает сказанное выше


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 11:51 
с 2011, мистер Холмс, сэр

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено проект однодневка , 06-Дек-21 14:49 
> для проектов однодневок

Я аж в голос с этого клоуна!


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено лютый жабби__ , 06-Дек-21 15:31 
>Тот, кто так говорит, явно не мог его использовать 12+ лет назад

бред, помню, даже в 2000-м году делал пару поделок на постгресе и уже тогда витало аналогичное мнение: слон медленнее мускуля только в кривых руках, а по фичам даже 21 года назад постгрес был лучше.

хотя для 2021 оба мусор, тк монга рулит )


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено _hide_ , 06-Дек-21 17:00 
> бред, помню, даже в 2000-м году делал пару поделок на постгресе и
> уже тогда витало аналогичное мнение: слон медленнее мускуля только в кривых
> руках, а по фичам даже 21 года назад постгрес был лучше.

Всё зависит от того, чем Вы занимаетесь. При обновлении 10-15 ГБ с ПГ Вы упираетесь в IO и уже можете наращивать скорость только за линейно, у MySQL имеется возможность такие проблемы отсрочить.

> хотя для 2021 оба мусор, тк монга рулит )

Вот всегда хотел спросить, сколько полезных проектов на Монге есть сейчас, старше 5-8 лет? Просто мой поиск мне даёт очень интересные результаты.

Ну и википедия подсказывает, что Монга это... Ну в общем, не база данных, хотя может заменить некоторые простые её функции.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Степан , 07-Дек-21 02:03 
Работал недавно на проекте, которому уже почти 10 лет и который является топ 1 решением в своем домене в Америке. На нём используется как раз монга. Не сказать что мы, разработчики, рады этому факту, но работает

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено _ , 07-Дек-21 08:15 
Чат для котегафф!?

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноньимъ , 07-Дек-21 02:49 
>слон медленнее мускуля только в кривых руках

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

Мускл же меня никогда не подводил и работал сразу из коробки.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено michelle , 06-Дек-21 20:40 
В 2004 делал проект биллинга провайдера на постгресе

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено cadmi , 07-Дек-21 13:46 
Когда Вадиму Михееву (работал в соседнем здании и был с ним знаком) в 1995 году понадобилось написать телефонный биллинг для МГТС в Красноярске, он написал половину тогдашнего постгреса :)

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 23:26 
Postgres сравнялся по скорости работы с MySQL на простых запросах где-то с 8-й версии. А в многопоточке он всегда работал быстрее (гугл и другие крупные конторы делали свои патчи, чтобы у них MySQL не тормозил на параллельных запросах, эти патчи потом вошли и в Машку и в Перкону). Была даже статья с названием типа "Нет больше медленных слонов" (только я ее не нашел). Произошло это больше 12-ти лет назад. До этого Postgres с его транзакционностью был медленнее MySQL с его MyISAM без какой либо атомарности.

IMHO чуть ли не единственная причина, почему MySQL не закапали еще лет 10 назад - WordPress работает только с ним и армия php'шников использовала преимущественно MySQL. А так как веб разработка есть почти в любом проекте и эта сфера довольно большая - то MySQL до сих пор широко распространен (в средней конторе админу проще поддерживать одну базу - MySQL, чем две MySQL для веба и Postgres для остального). Кроме того, Postgres нужно настраивать, чтобы он работал быстро, а в MySQL с этим попроще. Еще в MySQL раньше были менее жесткие требования к соблюдению синтаксиса запросов (Posqtgres настолько кривые запросы вообще не выполнял, а MySQL позволял довольно широкие отклонения).

Щас с России по статистике Posqtgres занимает нишу больше, чем MySQL. У буржуинов противоположная ситуация.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено YetAnotherOnanym , 06-Дек-21 23:36 
> армия php'шников использовала преимущественно MySQL
> в MySQL раньше были менее жесткие требования к соблюдению синтаксиса запросов

Чувствуется какая-то связь между этими наблюдениями...


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено _hide_ , 07-Дек-21 00:32 
> Postgres сравнялся по скорости работы с MySQL на простых запросах где-то с
> 8-й версии.

Это Вы про скороть чтения на одинаковом железе или сравниваете корпоративный сервер от именитых поставщиков с шаред хостингами?

> А в многопоточке он всегда работал быстрее (гугл и
> другие крупные конторы делали свои патчи, чтобы у них MySQL не
> тормозил на параллельных запросах, эти патчи потом вошли и в Машку
> и в Перкону).

Вы про что опять? У MySQL всегда была большая проблема с планировщиком, а многопточность -- это требование от больших дядь на чтение во время записи, которое не имеет ничего общего с реальной многопоточностью при выборке данных (её как таковой нет ни в Мускуле, ни в ПГ)

> Была даже статья с названием типа "Нет больше
> медленных слонов" (только я ее не нашел). Произошло это больше 12-ти
> лет назад. До этого Postgres с его транзакционностью был медленнее MySQL
> с его MyISAM без какой либо атомарности.

Да, что-то вспоминаю, сравнивали MyISAM и PG? Сейчас это очень своевременно и да, не имеет никакого отношения к скорости, ПГ НИКОГДА НЕ СРАВНИТСЯ ПО СКОРОСТИ, просто это стоит намного дороже в плане проектирования (планировщик у него работает почти идеально, но Вы же не можете гарантировать наличие индексов всегда? Вот и упретесь в то, что если железка не может хранить все индексы в памяти и с ними играться, то ни о каком сравнении с MySQL-ом речи быть не может). И опять же, на ПГ только искать? Для этого есть совсем другие решения, а при записи он посасывает.

> IMHO чуть ли не единственная причина, почему MySQL не закапали еще лет
> 10 назад - WordPress работает только с ним и армия php'шников
> использовала преимущественно MySQL. А так как веб разработка есть почти в
> любом проекте и эта сфера довольно большая - то MySQL до
> сих пор широко распространен (в средней конторе админу проще поддерживать одну
> базу - MySQL, чем две MySQL для веба и Postgres для
> остального). Кроме того, Postgres нужно настраивать, чтобы он работал быстро, а
> в MySQL с этим попроще. Еще в MySQL раньше были менее
> жесткие требования к соблюдению синтаксиса запросов (Posqtgres настолько кривые запросы
> вообще не выполнял, а MySQL позволял довольно широкие отклонения).

Очень субъективно, но, на мой взгляд, тут не синтаксис сыграл свое (а он местами просто уг), а то, что на 64МБ оперативки он вполне себя живенько чувствовал.

> Щас с России по статистике Posqtgres занимает нишу больше, чем MySQL. У
> буржуинов противоположная ситуация.

Он занимает нишу Оракла, а сайтовая ниша для MySQL-а у нас просто намного меньше.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено моррут , 07-Дек-21 09:44 
>Еще в MySQL раньше были менее жесткие требования к соблюдению синтаксиса запросов (Posqtgres настолько кривые запросы вообще не выполнял, а MySQL позволял довольно широкие отклонения).

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


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Анонимус314 , 08-Дек-21 21:58 
Вот откуда берется это про "нужно настраивать"? Там все основные настройки в конфиге откомментированы и интуитивно понятны, насколько помню (2 года настройкой СУБД не занимался).

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено анон ессно , 07-Дек-21 15:54 
С Postgre95.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 09-Дек-21 05:30 
Postgres95

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Ян Злобин , 06-Дек-21 11:57 
>  всегда использовал слоника заместо вот этого вот детища оракула

Ничего вы, батенька, не понимаете в залепухах для прачечных!


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 13:25 
Зелёного?

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 19:14 
> детища оракула

Вот и выросло поколение...

Хоть википедию бы почитали бы


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено AleksK , 06-Дек-21 11:22 
Вот кстати тоже не понимаю зачем нужен MySQL если есть Postgres, который уделывает его по всем параметрам.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено _hide_ , 06-Дек-21 11:27 
>>> уделывает его

По каким параметрам?

>>> по всем

А мне казалось, что применение PG -- это очень взвешенное и обоснованное решение.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено funny.falcon , 06-Дек-21 11:30 
Не по всем. Я, как любитель PostgreSQL, ответственно заявляю.

Причины, по которым Uber возвращался с PostgreSQL на MySQL, в основном ещё актуальны.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено AleksK , 06-Дек-21 11:40 
> Причины, по которым Uber возвращался с PostgreSQL на MySQL, в основном ещё
> актуальны.

Если они изначально делали все под MySQL, то не удивительно. А так по моему опыту использования Postgres и MySQL с рельсами, Postgres даже на глаз быстрее работает.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Gemorroj , 06-Дек-21 11:55 
миграция на более новые версии у mysql на порядок проще. мультимастер (galera в mysql). некоторый синтаксический сахар (работа с enum, например).

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено AleksK , 06-Дек-21 12:02 
Когда работаешь с ORM вообще пофиг.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено x3who , 06-Дек-21 12:06 
ORM там вообще перпендикулярен к тем проблемам, о которых вам говорят.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено AleksK , 06-Дек-21 12:13 
> ORM там вообще перпендикулярен к тем проблемам, о которых вам говорят.

Вот именно, я работаю со своей объектной моделью, мне пофиг на то что там происходит под капотом. Но с Posgtres для меня все работает быстрее, и админить его ИМХО проще и удобнее.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Онаним , 06-Дек-21 21:00 
Понятно. Упёрся в кривую ORM, свалил всё на RDBMS.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено AleksK , 06-Дек-21 23:07 
> Понятно. Упёрся в кривую ORM, свалил всё на RDBMS.

Понятное дело если бы ты её писал то она бы летала и была бы сделана идеально. Эх жаль мир потерял такого специалиста.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Онаним , 06-Дек-21 23:15 
Не переживай, не потерял.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено keydon , 06-Дек-21 12:19 
Когда работаешь с patroni - тоже

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 12:55 
>более новые версии

а есть менее новые? Ну или хотя бы более лучшие.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Ilya Indigo , 06-Дек-21 13:15 
> (работа с enum, например).

enum в постгресе одна из немногих вещей которая мне понравилась.
В MariaDB я его никогда не использую, так как есть более эффективный tinyint unsigned, а соответствия можно в php массивом в константе класса сохранить.

Но в посгресе нет ни tinyint ни unsigned но можно определить 1 раз enum и вставлять его в 2 и более таблицы, а если нужно модифицировать то делается это 1 раз.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 07-Дек-21 11:57 
>> Причины, по которым Uber возвращался с PostgreSQL на MySQL, в основном ещё
>> актуальны.
>Если они изначально делали все под MySQL, то не удивительно. А так по моему опыту использования >Postgres и MySQL с рельсами, Postgres даже на глаз быстрее работает.

Я мог конечно не так понять, но вроде обоснования были такие. Там вроде одна из проблем была - массированные обновления строк. У постгреса с этим не очень хорошо (по крайней мере было, как сейчас - не знаю), тормозил нещадно по сравнению с мускулем. Поясню. У других БД (оракл, мускуль...) строка обновляется на том же месте, где валяется (in-place), т.е. ее физическое положение в блоках не меняется, кроме редких случаев. А постгря вместо редактирования старой строки тупо добавляет измененнную новую. Вроде должно быть даже быстрее, типа некий аналог Copy-on-write. Проблемы возникают, когда на таблицу навешаны индексы. Индекс - упорядоченная последовательность значений, где с каждой строчкой индекса хранится ссылка на исходную строку в таблице, в каких блоках она находится по каким смещениям. В оракле-мускуле, если в строке обновляются поля, не входящие в индекс, индекс не редактируется (адрес строки в таблице не поменялся). А вот в постгре даже при обновлении не-индексных полей надо каждый раз искать в индексе и обновлять на адрес новой, обновленной строки - там уже другой адрес, уже в других блоках ошивается строка, т.е в индексе хранится фигня, надо исправить. Т.е. представь, в таблице у тебя один-два-три индекса, для поисков, а ты 24/7 массированно меняешь поля, не входящие в индекс - и совершается куча лишней (в сравнении с мускулем) работы по обновлению индексов, да еще и куча мусора остается в виде старых исключенных строк, которые какой-нибудь автовакуум подобрать должен, периодически внося свои тормоза и задержки.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено www2 , 22-Дек-21 07:25 
В MySQL можно одновременно читать одну и ту же запись, а читать и обновлять - нет. Набегающие толпы читающих клиентов могут надолго заблокировать запись для обновления.

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

https://ru.wikipedia.org/wiki/PostgreSQL#%D0%9C�...)

В общем, для сайтиков, где данные обновляются не так часто, а чаще читаются, MySQL, наверное, подойдёт лучше. Если же данные чаще обновляются, чем читаются, то PostgreSQL подойдёт лучше.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Всем Анонимам Аноним , 28-Янв-22 15:03 
Вы, наверное, про MyISAM?
В MySQL разные движки.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Cykooz , 06-Дек-21 12:27 
Насколько помню они вернулись не в совсем обычный MySQL, а в какую-то свою кастомизацию, с помощью которой они из MySQL сделали Key-Value базу данных. Вероятно тогда это было легче сделать в MySQL, т.к. там есть поддержка разных движков для хранения данных. В Postgres она появилась только недавно.
Поэтому не совсем корректно говорить, что они вернулись именно в MySQL, т.к. они фактически перешли на совершенно другой тип базы данных.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено funny.falcon , 06-Дек-21 14:19 
Нет. Key-value у них - это слой абстракции сверху, а не движок.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Cykooz , 06-Дек-21 14:35 
> Нет. Key-value у них - это слой абстракции сверху, а не движок.

А, ну да. Но тем не менее они сделали "костыль" поверх MySQL, т.к. именно его движок хорошо показал себя с этим "костылём". С тем же успехом они могли взять готовую Key-Value базу, если бы была в тот момент подходящая под требования. Поэтому не очень корректно приводить пример Uber-а, т.к. они MySQL использовали довольно специфично. Примерно как сравнивать Postgres с Redis.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Catwoolfii , 06-Дек-21 20:05 
В текущей версии postgres половина названных проблем уже не актуальна.

"Один из разработчиков MySQL раскритиковал проект и..."
Отправлено arisu , 06-Дек-21 21:53 
> Причины, по которым Uber возвращался с PostgreSQL на MySQL, в основном ещё
> актуальны.

так причина «мы не хотим платить специалистам, поэтому наберём макак по объявлениям» всегда будет актуальна.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Ilya Indigo , 06-Дек-21 13:06 
Уделывает он только по физическому занимаемому месту для эквивалентных данных! (жрёт гораздо больше)
А так в нём нет ни unsigned, не int1 и int3, и даже ALTER TABLE ... ADD ... AFTER ...; нету.
Альтернативных движков нету, и, возможно, сжатия табличного пр-ва единственного движка тоже нету!
Ох уж эти мамкины уделыватели по всем фронтам...

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Наме , 06-Дек-21 13:34 
> Уделывает он только по физическому занимаемому месту для эквивалентных данных! (жрёт гораздо
> больше)
> А так в нём нет ни unsigned, не int1 и int3, и
> даже ALTER TABLE ... ADD ... AFTER ...; нету.
> Альтернативных движков нету, и, возможно, сжатия табличного пр-ва единственного движка
> тоже нету!
> Ох уж эти мамкины уделыватели по всем фронтам...

Ильюшинька, Слон реляционный MVCC (честная реализация всех уровней изоляции транзакций), а Дельфин по умолчанию ISAM (транзакций и WAL-а нет, но бывают задачи где это всё лишняя нагрузка). Это как ткацкий станок сравнивать с вязальными спицами -- каждый хорош для своих задач.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Ilya Indigo , 06-Дек-21 13:50 
> Ильюшинька, Слон реляционный MVCC (честная реализация всех уровней изоляции транзакций),

Вы не поверите, InnoDB тоже!
> а Дельфин по умолчанию ISAM

MySQL уже более 10-ти лет по умолчанию InnoDB использует, а там где нужна быстрая вставка можно и MyISAM использовать в той же самой БД!


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Наме , 06-Дек-21 14:01 
>> Ильюшинька, Слон реляционный MVCC (честная реализация всех уровней изоляции транзакций),
> Вы не поверите, InnoDB тоже!
>> а Дельфин по умолчанию ISAM
> MySQL уже более 10-ти лет по умолчанию InnoDB использует, а там где
> нужна быстрая вставка можно и MyISAM использовать в той же самой
> БД!

Это под вендой. Но Инно тоже Слону не конкурент. Совершенно разного масштаба явления.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено funny.falcon , 06-Дек-21 14:22 
Это вы зря. Сам InnoDB довольно продвинут. Но это лишь слой хранения.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Ilya Indigo , 06-Дек-21 14:33 
> Это вы зря. Сам InnoDB довольно продвинут. Но это лишь слой хранения.

Да уже по первому комментарию и так понятно что аноним совершенно не понимает о чём пишет, а когда его аргументы мною разбиты пишет снова глупость, не понятно зачем вообще упоминая оффтопик, и просит просто поверить ему.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Наме , 06-Дек-21 15:57 
Ильюша, ты пишешь на пэхэпэ. Эти всё сказано о твоим интеллектуальных способностях и общей профессиональной эрудии.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноньимъ , 07-Дек-21 03:00 
Мамин илитарий, угомонись.
ПХП программисты ничем не хуже сишников и сипипишников.
Специалисты и профаны есть везде.

"Один из разработчиков MySQL раскритиковал проект и..."
Отправлено arisu , 07-Дек-21 03:06 
> ПХП программисты ничем не хуже сишников и сипипишников.

ну да, почти как люди: две руки, две ноги, две задницы… в одну они едят.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Наме , 07-Дек-21 10:42 
> Мамин илитарий, угомонись.
> ПХП программисты ничем не хуже сишников и сипипишников.
> Специалисты и профаны есть везде.

Я о том, что пэхэпёр вряд ли в свой профессиональной жизни плотно сталкивается с потрохами разных СУБД. Ему это просто не надо.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено vitalif , 06-Дек-21 15:18 
Под какой виндой, что ты несёшь?

Никто уже нигде лет 15 не использует MyISAM. А InnoDB тоже MVCC, причём что важно - там нет грёбаного вакуума)


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Наме , 06-Дек-21 15:59 
> Под какой виндой, что ты несёшь?
> Никто уже нигде лет 15 не использует MyISAM. А InnoDB тоже MVCC,
> причём что важно - там нет грёбаного вакуума)

Практически везде. Просто в силу того, что ISAM для многих задач достаточен.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Наме , 06-Дек-21 16:05 
> Под какой виндой, что ты несёшь?
> Никто уже нигде лет 15 не использует MyISAM. А InnoDB тоже MVCC,
> причём что важно - там нет грёбаного вакуума)

Ты можешь объяснить, чем "вакуум" хуже/лучше отдельных UNDO-сегментов или писанины в tempdb?


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено _hide_ , 07-Дек-21 10:39 
> Ты можешь объяснить, чем "вакуум" хуже/лучше отдельных UNDO-сегментов или писанины в tempdb?

Это может сделать любой. Это хорошо отсутствием блокировок и гарантированной прозрачностью операций. Пишем в лог, читаем из данных и лога (причем все проблемы синхронизации и доступности решает движок БД, разве не классно?). Когда не Hello World, а 300 клиентов пишут/читают единовременно из одного набора данных, такие вопросы вызывают лишь улыбку.
И да ISAM-кие движки всегда были ReadOnly after write? Или были какие-то решения для обхода ограничений?



"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Наме , 07-Дек-21 10:47 
> Это может сделать любой. Это хорошо отсутствием блокировок и гарантированной прозрачностью
> операций. Пишем в лог, читаем из данных и лога (причем все
> проблемы синхронизации и доступности решает движок БД, разве не классно?).

Каких ещё блокировок? Вот есть у тебя ряд реализаций MVCC, одна хранит историю в виде исходных строк в том же месте, где они были до удаления/изменения, другая пишет, условно, диффы в другое место, а на прежнем месте городит сложную структуру из цепных ссылок, третья делает что-то среднее между первым и вторым -- какие-то удалённые строки держит на прежнем месте, какие-то выносит в отдельную помойку, а какие-то изменения просто хранит в виде инструкций в журнале изменений. Какой способ лучше?


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено _hide_ , 07-Дек-21 11:06 
> Каких ещё блокировок?

Мы скоро обсуждать будем ассемблерные вставки? Кто это пишет дифы? Никто никаких дифов в набор данных не пишет (да и в логи пишутся отнють не дифы, а новые значение полей): либо переписывает измененный набор данных/релоцирует его и пишет заново, помечая старые данные как свободное место (MySQL), либо пишет весь блок отдельно и отмечает это в метазаписях как ожидающий вакуума (PG).
VACUUM блокирует часть данных при релокации. MySQL-у Optimize Table нужен как таковой, только при использовании запросов вне индекса (при сканировании), PG требует этого "для обслуживания".

> какие-то изменения просто хранит в виде инструкций в журнале изменений

Хранить инструкции в журнале? Что за бред, такое было когда-то в InnoDB, но уже давно всплыло, а если журнал будет повреждён? Конец атомарности, разрушены внешние ссылки и вообще ахтунг и ручное восстановление.

> Какой способ лучше?

Для пользователей и разработчик-прикладников, лучше именно гибридный способ с повторным использованием освободившегося места (и фрагментацией как проблемой), потому что это даёт серьезный прирост к скорости (путем нагрузки на CPU и контроллер, но не на IO), нежели полное копирование всех данных при обновлении.
Если брать разработчиков этих СУБД, то второй способ хорош тем, что его можно очень качественно отладить и оптимизировать, тем самым заняв нишу систем с низкой степенью отказа.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Наме , 07-Дек-21 11:33 
Оракл, например, пишет "диффы" (образно выражаясь, там что-то вроде инструкций разностных). Но не всегда. Если у тебя строка огромная, а поменял ты в ней один символ, то могилить (как делает Слон и Инно тоже) её как-то не слишком рационально. Тогда пишется такой "дифф" и этим экономится и пространство хранение и оперативное.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено _hide_ , 07-Дек-21 11:42 
> Оракл, например, пишет "диффы" (образно выражаясь, там что-то вроде инструкций разностных).
> Но не всегда. Если у тебя строка огромная, а поменял ты
> в ней один символ, то могилить (как делает Слон и Инно
> тоже) её как-то не слишком рационально. Тогда пишется такой "дифф" и
> этим экономится и пространство хранение и оперативное.

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

ЗЫ Но да, прикольно, не знал про это


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 16:48 
Конечно-конечно, никакого вакуума. Только православный optimize table! Ну и что что это те же яйца даже не в профиль.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Наме , 06-Дек-21 17:13 
> Конечно-конечно, никакого вакуума. Только православный optimize table! Ну и что что это
> те же яйца даже не в профиль.

Нет, это и близко не одни и те же "яйца". Одна чистит БД от призраков и освобождает счётчик транзакций (изменений), другая проводит пересортировку таблиц.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено _hide_ , 07-Дек-21 10:48 
> другая проводит пересортировку таблиц.

Какую еще "пересортировку"? Из таблицы удаляются осиротевшие или невалидные данные (совсем не осиротевшие :-) ), а в освободившееся пространство (высокая скорость записи имеет свою цену и одна из них -- большое количество мертвых данных) заполняется сортированным для чтения набором данных и пересчитанными индексами (после релокейта деток, приходится и индексы пересчитывать)

> освобождает счётчик транзакций (изменений)

В том контексте, которые используется мной, такие действия выполняются при коммите транзакции (или перед остановкой БД, если за атомарность у нас отвечает бесперебойник)


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Наме , 07-Дек-21 11:30 
>> другая проводит пересортировку таблиц.
> Какую еще "пересортировку"? Из таблицы удаляются осиротевшие или невалидные данные (совсем
> не осиротевшие :-) ), а в освободившееся пространство (высокая скорость записи
> имеет свою цену и одна из них -- большое количество мертвых
> данных) заполняется сортированным для чтения набором данных и пересчитанными индексами
> (после релокейта деток, приходится и индексы пересчитывать)
>> освобождает счётчик транзакций (изменений)
> В том контексте, которые используется мной, такие действия выполняются при коммите транзакции
> (или перед остановкой БД, если за атомарность у нас отвечает бесперебойник)

Ты не в курсе. У Слона счётчик циркулярный, ещё и "меридианный". Уроборос этакий. Без вакуума он заканчивается и всё фризится.

Ну и чем тогда пурген отличается от вакуума(кроме чистки счётчика)? Риторический вопрос. В действительности, ни одна из реализаций не лучше другой. Это очередная Кока-кола против Пепси-колы.
И не коммите, а фиксации.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 07-Дек-21 10:56 
А вот это в корне не так, если говорить о б-жественном InnoDB. InnoDB не поддерживает OPTIMIZE напрямую, вместо этого все данные из таблицы копируются во временную таблицу, которая потом замещает оригинальную.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Онаним , 06-Дек-21 20:58 
Если InnoDB не наполнять очень хитрым образом - необходимости в OPTIMIZE TABLE обычно не существует.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 07-Дек-21 10:49 
Точнее сказать - если не удалять из нее данные)

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Онаним , 07-Дек-21 10:51 
Перепутали с постгрёй и вакуумом.
InnoDB - это не постгря, она умеет заполнять освобождённые страницы при добавлении данных.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 07-Дек-21 12:29 
Вообще-то умеет. но чтобы это узнать надо прочитать документацию.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено www2 , 22-Дек-21 07:30 
>Никто уже нигде лет 15 не использует MyISAM. А InnoDB тоже MVCC, причём что важно - там нет грёбаного вакуума)

А вакуум над ibdata1 не помешал бы. Полное резервное копирование с последующим восстановлением из резервной копии - так себе альтернатива для вакуума. Но тем, у кого полная резервная копия делается за полчаса, а перерыв в работе в несколько часов не особо критичен, MySQL пойдёт.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Catwoolfii , 06-Дек-21 20:08 
У мускула определенно есть некоторые плюсы в сравнении со слоном, но только не язык запросов. Такой огрызок еще поискать надо...

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Ilya Indigo , 06-Дек-21 20:17 
> У мускула определенно есть некоторые плюсы в сравнении со слоном, но только
> не язык запросов. Такой огрызок еще поискать надо...

Я хоть от одного мамкиного слонёнка конкретику услышу с примерами и пруфами, или только один глупый и необоснованный детский бред!?


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено fuggy , 07-Дек-21 10:28 
> нет ни unsigned, не int1 и int3

unsigned нет в SQL стандарте. int1 это для тех кто не умеет boolean. int3 вообще какая-то эзотерика, никому не нужная. smallint достаточно. Ну уж в количестве типов тягаться с PostgreSQL не стоит. Там есть array, intrange, daterange, xml, json, inet, геометрические типы. Даже банального uuid нет.

> ALTER TABLE ... ADD ... AFTER ...

В стандарте у колонок нету порядка. Да функция удобная, но без неё можно прожить.
Про CONSTRAINT CHECK ничего не хочешь сказать? Он как бы есть, но его нет.

И уж сравнивать по фичам MySQL не стоит. Подключаемые движки, это единственное что пока есть. Они хороши только для определённой нагрузки. Зато нет набора типов индексов, с помощью которых можно улучшить некоторые операции.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Онаним , 07-Дек-21 10:53 
Зато есть отсутствие vacuum, которое автоматически улучшает куда больше, чем тот самый набор индексов. Кстати индексы по (даже не хранимым) вычисляемым полям в MariaDB давно можно делать, и поэтому ряд вещей таким способом и решается. Но соглашусь, маразм с отсутствием DESC индексов решён пока только в ванильной восьмёрке.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено fuggy , 07-Дек-21 14:26 
Вакуум это лишь отложенное амортизированное время операции на вставку/удаление, за счёт чего это операции эти операции выполняются быстро без необходимости копировать строки в REDO. То есть устаревшие версии строк хранятся в самой таблице и раздувают её, что конечно плохо. Вся лишь разница где хранятся старые версии строк и если вакуум выполняется регулярно, то будет лишь небольшой процент мёртвого места. Но вакуум выполняется в фоне и не занимает основной поток операций.

Функциональные индексы и PostgreSQL есть, недавно появились и покрывающие индексы, а кроме того там ещё есть полезные частичные индексы, что в разы уменьшает размер индекса. Частичные индексы позволяют проиндексировать только нужные значения для выборки, не включая оставшиеся ненужные строки. А что касается типов индексов, то кроме банального B-tree, есть и более интересные вроде BRIN, Bloom. Гео индексы тоже есть, но они не всем нужны.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено minonA , 06-Дек-21 15:27 
Так, на вскидку, а есть ли в PostgreSQL аналог MEMORY таблицы? Вообще проблема оптимизатора MySQL преувеличена. Да, в Postgres он умнее. Но и в MySQL можно добиться схожих результатов немного подкрутив. А если говорить о простых запросах, что наиболее частый юзер-кейс, MySQL вообще ничем не хуже.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено AleksK , 06-Дек-21 16:45 
Я сужу по тому как работал мой проект на рельсах. Загрузка базы в проект из yaml ну просто в разы быстрее при использовании postgres, да и отзывчивость в общем получше. Я не проводил специальных тестов просто общие впечатления от работы на одном и на другом.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Онаним , 06-Дек-21 20:57 
Ну, на рельсах можно и постгрю, хуже уже не будет.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено А где же каменты , 06-Дек-21 18:56 
Постгрес нравится, но девелопер похож на обиженку- видимо чего-то недодали.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 11:22 
> рекомендовал использовать PostgreSQL

дак я уже


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 13:11 
А я никогда мускуль и не использовал.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 09-Дек-21 06:46 
А я его еще больше ку. (c)

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Перастерос , 06-Дек-21 11:35 
Сейчас будет холивар? Я за Postgres! )

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 12:13 
так вы женщина??

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 13:31 
у тащмайора спроси, тут поди процентов 80

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Анончик , 07-Дек-21 03:57 
тут пока одни капитаны

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено flexagoon , 06-Дек-21 11:40 
> MySQL сильно устарел и не эффективен, при том, что большинство пользователей и разработчиков считают, что всё в порядке, не утруждая себя сравнением с другими СУБД, которые давно ушли вперёд

Они тут слово "My" нечаянно перед "SQL" добавили


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Прохожий , 07-Дек-21 05:36 
И какая альтернатива, о великий эксперт?

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено flexagoon , 08-Дек-21 11:36 
Да любые NoSQL БД

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено www2 , 22-Дек-21 07:42 
На SQL по крайней мере стандарт есть и даже те, кто его не придерживается, изображают что-то более-менее одно и то же.

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

А вот на NoSQL никаких стандартов нет, каждый выдумывает что-то своё. И похоже всё это на закат солнца вручную.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Всем Анонимам Аноним , 28-Янв-22 15:06 
Все зависит от цели. Когда много данных и нужна скорость, но целостность - не проблема, то почему бы нет.
Хотя я согласен, Гугл даже строит новую базу себе типа SQL, называется Spanner. Вначале думали да, все проблемы можно возложить на код, но потом пришли к выводу, что проще чтобы база данных этим все-таки занималась.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 11:42 
Использовал и то и другое, особой разницы не заметил. Для малых и средних сайтов MySQL - идеальное решение, поскольку там лучше дока и больше туторов. А высоконагруженный сайт postgress со всеми своими "продвинутыми" алгоритмами и оптимизациями банально не потянет.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 11:52 
Рукожоп.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 11:55 
Не знаю чем там сильно отличаются туториалы для малых и средних сайтов, так как для малых и средних сайтов база всё равно считается детской по структуре.
А вот для более серьёзных проектов (веб/десктоп, АРМ, и тд) всё таки более гибкая в проектировании PostgreSQL я считаю. Логику делать очень удобно. И как раз таки нормальная дока по нему в целом.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 12:26 
Вывод ты делаешь малые и средние сайты. Больше из твоего комментария нечего почерпнуть.  

"Один из разработчиков MySQL раскритиковал проект и..."
Отправлено arisu , 06-Дек-21 21:58 
> А высоконагруженный сайт postgress со всеми своими "продвинутыми" алгоритмами
> и оптимизациями банально не потянет.

потянет и это. просто надо применить Секретную Оптимизацию: выгнать на мороз тебя и тебе подобных «специалистов».


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 11:48 
Ну всё, мария не торт, мускуль не торт, постгрес не торт, и раст нас не спасёт, потому что там тоже все paзocpaлиcь.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Rev , 06-Дек-21 12:21 
> там тоже все paзocpaлиcь

Кто "все"? Модераторы CoC? Ах, увольте...


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено topin89 , 06-Дек-21 14:51 
Если бы всё было так просто. Один из ключевых разработчиков забросил Rust Wasm, но активно отказывался передавать управление другим ключевым разработчикам после множества просьб.
Пользуясь полномочиями ключевого разраба, он активно банил неугодных порой без причин.

Да и сам оказался в составе core team, потому что знакомый протащил.
До этого работал в npm, где пытался турнуть некоего Рода Вагга, но не прокатило, и турнули его самого.

Добавим к этому активную SJW-позицию на всё про всё. Высказывание "убить всех мужиков" и было причиной для бана, вот только у модера нет прав банить. Модераторский состав, с другой стороны, состоит преимущественно из прикладников на rust. В частности, инициатором бойкота выступил не непонятный SJW'шник, а автор ripgrep.

Разработчика зовут Эшли Уильямс, подробности тут: https://news.ycombinator.com/item?id=28515306
Так что всё гораздо хуже, чем SJW-модеров уволили. Они там уже в составе разрабов.
Грустно, надеюсь, таки турнут эту Эшли.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Kuromi , 06-Дек-21 17:56 
Отличная ссылочка. Читается на одном дыхании как один большой анекдот. Только это все реальность.
Хотя если честно я не понимаю что мешает Rust Core Team обратиться к админам гитхаба и попросить передать им права, в конце концов речь идет не о группе анонимов из даркнета, а официально существующей организации.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 12:25 
Всегда остаётся Хаскель!

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 12:57 
Вся надежда на Монго

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 13:30 
..умерла в далеком 11м году

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено funny.falcon , 06-Дек-21 14:28 
Очень зря. MongoDB вполне себе надёжная и удобная в эксплуатации база в наши дни. Я имею в виду эксплуатацию с точки зрения администрирования.

Правда, консистентный бэкап шардированного кластера сделали платной фичей. Его можно повторить руками, но минимум несколько месяцев интенсивной разработки обойдётся.

Но у кого он вообще есть - бесплатный консистентный бэкап шардированного кластера? Знаю, у TiDB. У кого ещё?


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено лютый жабби__ , 06-Дек-21 15:54 
>Правда, консистентный бэкап шардированного кластера сделали платной фичей

первая же ссылка https://github.com/Percona-Lab/mongodb_consistent_backup
сам не использовал


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Простоник , 06-Дек-21 11:58 
MySQL всегда был игрушкой для небольших сайтов. Для определённого масштаба вполне подходит.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 12:24 
Ты ведь сейчас вордпресс имел ввиде и что УГ, да? И правильно сделал.  

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Простоник , 06-Дек-21 12:39 
(Зевая) Я не знаю что там хранит вордпресс и в каком виде, но хранить в подобной базе большое количество таблиц особенно со сложной структурой и сложными запросами я бы не стал. А так пяток таблиц для блога подойдёт.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено mamba , 06-Дек-21 18:44 
Alibaba так не считает
https://www.youtube.com/watch?v=4Yhn2Zq3mHA

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено ddd2 , 07-Дек-21 06:36 
у них свое ответвление MySQL с 2008-2009 года. Там от родного MySQL только названия.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Простоник , 07-Дек-21 07:44 
Админ у них просто героический. Для hi load эта штука не имеет необходимых механизмов. Амбразуры, похоже, приходится закрывать собственным  телом(пристройкой сарайчиков и землянок).

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено funny.falcon , 07-Дек-21 08:28 
Думаю, их «сарайчики и землянки» больше походят на Форд-Нокс

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 07-Дек-21 15:08 
это чо за тачка?

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Онаним , 06-Дек-21 20:56 
Ну вот то есть мои полтерабайта биллинговой информации - это небольшой сайт.
Окей.

"Один из разработчиков MySQL раскритиковал проект и..."
Отправлено arisu , 06-Дек-21 22:01 
> Ну вот то есть мои полтерабайта биллинговой информации - это небольшой сайт.
> Окей.

вообще-то так и есть. но ты этого всё равно не поймёшь, что очевидно по глупости твоего комментария.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено anonymous , 08-Дек-21 12:23 
> MySQL всегда был игрушкой для небольших сайтов. Для определённого масштаба вполне подходит.

Небольших сайтов вроде FB.com и pinterest


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено kai3341 , 06-Дек-21 12:00 
Блин. InnoDB интересен своей ораклиной структурой данных -- кластерный первичный ключ. Реализация MVCC не гадит себе под ноги, необходимость богомерзкого autovacuum отсутствует. Когда БД корректно остановлена, она не содержит мусора. InnoDB -- это топовый OLTP движок

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

PS: У постгреса другие сильные стороны. Например, бесплатный rollback


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Ilya Indigo , 06-Дек-21 13:34 
> Реализация fulltext очень грустная

Ну так если нужно нормальный, то для этого Sphinx есть.
А то что есть это просто что бы было кому лень со сфинксом заморачиваться.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Наме , 06-Дек-21 13:46 
> Блин. InnoDB интересен своей ораклиной структурой данных -- кластерный первичный ключ.
> Реализация MVCC не гадит себе под ноги, необходимость богомерзкого autovacuum отсутствует.
> Когда БД корректно остановлена, она не содержит мусора. InnoDB -- это
> топовый OLTP движок
> Претензии есть. Реализация fulltext очень грустная, не поддерживает партиционирования.
> То есть если вы индексируете, например, новости, которые есть временной ряд
> -- поиск с указанием временных рамок будет крайне грустненьким
> PS: У постгреса другие сильные стороны. Например, бесплатный rollback

Попутал ты всё. Какой "кластерный первичный ключ"? Это в МС Сиквеле типично отношение реализуют "кластерным индексом", в Оракле типично куча, хотя с 12-той версии появилась возможность реализовывать индексно-организованными таблицами (но редко кто так делает). Какая разница куда "гадим" MVCC? Когда нет необходимости каждый раз плодить UNDO-данные и таскать их из одного ТП в другое это банально быстрее, но больше места жрёт в локальной перспективе времени. Тут уж надо выбирать, что ценнее пространство или время ЦП и память. В чём богомерзкость вакуума? При адекватной настройке всё просто работает. Проблемы возникают, когда в одном кластере много БД и в них сильно разные по длительности транзакции -- 31-однобитного счётчика банально начинает не хватать. Ну так это нужно учитывать при развёртывании.
Инно хорошая академическая лабораторная работа, к проду не пригодная по ряду причин, вроде того, что вектор UNDO не попадает в WAL, что при краше приводит к развалу БД.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено funny.falcon , 06-Дек-21 14:31 
А можно ссылочки на развал БД при краше?

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Наме , 06-Дек-21 16:10 
> А можно ссылочки на развал БД при краше?

Разверни. Запусти длительную транзакцию, не завершая её выруби питание. Т.к. данные UNDO скорее всего в полном объёме не попадут в журнал, то при обратном проигрывании при восстановлении получить несогласованную БД. Тут должны, конечно, звёзды сойтись. Чтобы грязные блоки уже попали на диск, но при этом вектор UNDO ещё нет. Но во "взрослых" СУБД это принципиально невозможно, а в Инно вполне под рабочей нагрузкой. Хотя это практически, объективно говоря, маловероятно, но при случае проблем при восстановлении добавит.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено nik , 06-Дек-21 19:57 
че за бред ?? -- все изменения в данных и в том же UNDO сохраняются в REDO, и пофиг длинная там транзакция или короткая, при сбросе питания все откатится до последнего COMMIT, а то что "не успело" -- вернется в пред. состояние из UNDO.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Мимо_проходил , 06-Дек-21 21:09 
> че за бред ?? -- все изменения в данных и в том
> же UNDO сохраняются в REDO, и пофиг длинная там транзакция или
> короткая, при сбросе питания все откатится до последнего COMMIT, а то
> что "не успело" -- вернется в пред. состояние из UNDO.

Нет, это не так. Возможны состояния, когда UNDO не оказалось в REDO, а изменённые блоки уже на диске.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Онаним , 06-Дек-21 20:55 
Бред.
Ну или эксплуатация на системе, не умеющей в write barrier - там что угодно развалится, не только InnoDB.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Мимо_проходил , 06-Дек-21 21:07 
> Бред.
> Ну или эксплуатация на системе, не умеющей в write barrier - там
> что угодно развалится, не только InnoDB.

Словья-то какие воспроизводим. Ещё бы знали, что это значит )))) Write barrier тут вообще не причём. Причём тут то, что Inno не обеспечивает WAL для UNDO. Вот и всё. Сделано это из соображений, да, скорости. И, в общем, имеет право на жизнь.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Онаним , 06-Дек-21 21:08 
Короче я не знаю, как ты умудрился InnoDB развалить - у меня за долгие годы не получилось.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено 1 , 07-Дек-21 11:21 
У тебя просто не было длинных транзакций ...

А так разваливается и при резком выключении питания (гасится ИБП) так и при нехватке свободного места ... гасится мониторингом.

А так ... Ну что спорить-то какой нож лучше ?


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Онаним , 07-Дек-21 15:28 
Ну короче да, смысла спорить нет - я хз как вы умудряетесь InnoDB развалить, видимо руки должны быть правильно заточены.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Онаним , 06-Дек-21 21:10 
И что значит при чём тут WB.
Когда двиг выставляет fsync()/fdatasync()/sync_file_range(), он ожидает, что на диске к моменту завершения будет всё, что он отписал, и заказал. Если WB нет - с энной вероятностью хрен оно будет на диске вовремя, и рандомное выключение приведёт к интересному.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Онаним , 06-Дек-21 21:20 
Ну и да, какой WAL для UNDO вы вообще собрались писать, если к моменту коммита в REDO данные только в REDO. Далее его флашим в таблицу как придётся, когда по нагрузке посвободнее например, даже если что-то отвалится, делаем рефлаш. Двойная нагрузка на флаш, ещё и с чтением из REDO, если из буфера вылетело, выйдет только когда REDO заполнен.

Это две разные парадигмы - либо пишем в REDO и флашим в таблицу потом, либо сразу пишем в таблицу и далее начинаются пляски с UNDO: мы либо переносим, и тогда получаем двойную нагрузку в момент транзакции, либо как в постгресном, пишем CoW'ом, и тогда надо вакуумить. Если у нас UNDO есть, REDO уже не нужен.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Онаним , 06-Дек-21 21:26 
Могу ещё подсказать как без WB редо развалить.

Всё не просто, а очень просто: мы флашим редо, выставляем синк на таблицу, выставляем синк на поинтеры редо. Если таблица на диск не попала, а поинтеры внезапно попали - имеем лютый 3.14ц, в таблице старые данные, в редо уже ничего.

С андо попроще, с андо корова конечно решает, но зато корову вакуумить надо регулярно.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Онаним , 06-Дек-21 23:18 
Похоже как раз на частичный коммит REDO в отсутствии WB.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Онаним , 06-Дек-21 23:18 
Ну или fsync кто-то бездумно выключил xD

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено penetrator , 06-Дек-21 15:24 
в MSSQL некластерный первичный индекс (если речь не про Azure) появился очень очень давно (задолго до появления самого Azure)

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Наме , 06-Дек-21 16:12 
> в MSSQL некластерный первичный индекс (если речь не про Azure) появился очень
> очень давно (задолго до появления самого Azure)

Не некластерный, а кластерный. Кластерней некуда. Но это всё словоблудие майковское.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено penetrator , 06-Дек-21 16:45 
>> в MSSQL некластерный первичный индекс (если речь не про Azure) появился очень
>> очень давно (задолго до появления самого Azure)
> Не некластерный, а кластерный. Кластерней некуда. Но это всё словоблудие майковское.

некластерный, heap или как хочешь еще, и он там есть и есть очень давно

PK в MSSQL может быть 2 типов

с пробуждением


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Наме , 06-Дек-21 16:59 
>>> в MSSQL некластерный первичный индекс (если речь не про Azure) появился очень
>>> очень давно (задолго до появления самого Azure)
>> Не некластерный, а кластерный. Кластерней некуда. Но это всё словоблудие майковское.
> некластерный, heap или как хочешь еще, и он там есть и есть
> очень давно
> PK в MSSQL может быть 2 типов
> с пробуждением

Heap это, пардон, куча. Т.е. когда данные хранятся вообще вне всякой упорядоченной структуры, а просто страницы в цепочку выделяются по IAM. В Сибэйсе хренелион лет назад решили, что коль уникальный индекс практически всегда создаётся, то логично в структуре этого индекса хранить и все прочие данные, которые не входят в индексный ключ, а не отдельно кучу и отдельно би-три с листами с индексным ключом. Ну и сделали такою смесь верблюда с носорогом -- сверху служебные структуры би-три, а на листах все данные. Ну вот, эту хрень и назвали кластерным индексом. В принципе, логичное решение, но проблема в том, что одного индекса в типичных условиях никогда не бывает достаточно, а хранение всех данных в структуре какого-то одного индекса зачастую приводит к смещению статистик распределения со всеми печальными последствиями. Поэтому тот же Оракл такого не делал. Я уж не помню, когда они ввели что-то подобное, по-моему, с 12-той версии. В Слоне тоже такого не было.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено penetrator , 06-Дек-21 22:53 
https://www.red-gate.com/simple-talk/databases/sql-server/t-.../

Heaps are tables without a clustered index.

Я вообще не собирался лезть в детали, я про то что в MSSQL ЕСТЬ КУЧИ.
Это онли про "Это в МС Сиквеле типично отношение реализуют "кластерным индексом", в Оракле типично куча"

Куча вполне себе возможна, доступна и используется в MSSQL. Это то, что я имел ввиду.
Куча возможна если нет ниодного кластерного индекса, которым обычно и является первичный ключ (первый и часто единственный кандидат).
Никакие нюансы терминологии меня в душе не ебали в тот момент.

Я только вернул кучи назад в MSSQL Server! С этим же все согласны? Ну вот и отлично.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Наме , 07-Дек-21 11:43 
Не серчай. Вокруг этой темы перебор всякой терминологии. У многих в результате каша. Я просто попытался немного ситуацию прояснить.
Так что, PK (первичный ключ) это Ограничение и оно НИКОГДА не реализуется кучей. Реализуется "кластерным" (исходная куча тю-тю, если была) или доп. (некластерным) индексом (доп. в смысле дополнительным к исходной куче, которая в этом случае никуда не девается, просто по данным этой кучи строится В-древо, которое эти данные структурирует, что и упрощает с одной стороны поиск, с другой -- создаёт основу для реализации условия уникальности).

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Наме , 06-Дек-21 17:01 
> PK в MSSQL может быть 2 типов

Как бы, PK это не индекс, а Constrain -- ограничение первичного ключа. Который реализуется, под капотом, созданием уникального кластерного уже Индекса, если явно не заказать создавать не кластерный индекс, а дополнительный.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Наме , 06-Дек-21 17:07 
> некластерный, heap или как хочешь еще, и он там есть и есть
> очень давно
> PK в MSSQL может быть 2 типов

Маленький бесплатный ликбез. В МС Сиквеле данные отношения могут хранится либо в куче, либо в би-три, организованном по значению уникального ключа (сортировки). PK же (Primary Key) это одно из видов Ограничений, которое реализуется либо тем, что все данные отношения помещаются в структуру индекса, либо тем, что создаётся куча, а куче создаётся би-три-структура доп. индекса, в которой на листах хранятся данные индексного ключа и ссылки на страницы кучи, где хранится оригинальная индексируемая строка.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Наме , 06-Дек-21 17:18 
> Маленький бесплатный ликбез. В МС Сиквеле данные отношения могут хранится либо в
> куче, либо в би-три, организованном по значению уникального ключа (сортировки). PK
> же (Primary Key) это одно из видов Ограничений, которое реализуется либо
> тем, что все данные отношения помещаются в структуру индекса, либо тем,
> что создаётся куча, а куче создаётся би-три-структура доп. индекса, в которой
> на листах хранятся данные индексного ключа и ссылки на страницы кучи,
> где хранится оригинальная индексируемая строка.

Хотя, малыши, я тут несколько ошибся. Когда заказываешь PK к существующему уже отношению, в котором есть данные, то данные из кучи перемещаются в это би-три, а исходная куча удаляется, если же заказать PK при создании отношения, то и не будет создаваться, а сразу будет создано би-три, в который данные отношения и будут писаться. Если же создать PK и явно указать, что ограничение должно реализоваться доп. индексом, то будет к куче создан доп. индекс в виде би-три. Вот и всё.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено kai3341 , 06-Дек-21 23:42 
> Попутал ты всё. Какой "кластерный первичный ключ"?

https://dev.mysql.com/doc/refman/8.0/en/innodb-index-types.html

Each InnoDB table has a special index called the clustered index that stores row data. Typically, the clustered index is synonymous with the primary key.

Не попутал.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Наме , 07-Дек-21 12:15 
>> Попутал ты всё. Какой "кластерный первичный ключ"?
> https://dev.mysql.com/doc/refman/8.0/en/innodb-index-types.html
> Each InnoDB table has a special index called the clustered index that
> stores row data. Typically, the clustered index is synonymous with the
> primary key.
> Не попутал.

Кластерный индекс это... хм... индекс. А Первичный ключ это... ограничение. Просто в силу того, что в МС Сиквеле (и в Инно) зачастую разраб при определении отношения сразу пишет требование ограничения PK (причём, по умолчанию оно реализуется именно кластерным индексом), то ему и невдомёк, что Ограничение и Индекс это не одно и тоже. Совсем.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено kai3341 , 07-Дек-21 13:12 
> Each InnoDB table has a special index called the clustered index

Я настоятельно рекомендую использовать терминологию официальной документации, а не вашу собственную


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Наме , 07-Дек-21 13:35 
Читать умеешь? clustered index это кластерный индекс (структура данных такая). Primary key это constraint (инструкция такая). Разницу между Constraint и Index способен уловить? Нет? Это типично.
Дальше и написано, что коль практически всегда PK реализуется с использование кластерного индекса, то их можно использовать как синонимы. Так вот, нельзя. Это не синонимы и близко. Кластерный индекс можно создать и не создавая ограничения PK. Как и ограничение PK можно реализовать некластерным доп. индексом.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Наме , 07-Дек-21 13:35 
Читать умеешь? clustered index это кластерный индекс (структура данных такая). Primary key это constraint (инструкция такая). Разницу между Constraint и Index способен уловить? Нет? Это типично.
Дальше и написано, что коль практически всегда PK реализуется с использование кластерного индекса, то их можно использовать как синонимы. Так вот, нельзя. Это не синонимы и близко. Кластерный индекс можно создать и не создавая ограничения PK. Как и ограничение PK можно реализовать некластерным доп. индексом.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Онаним , 10-Дек-21 09:19 
У пользователей MSSQL проблемы с тем, что они умудряются мешать индексы с констрейнтами, при этом их механически разделяя :D

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 13:58 
> необходимость богомерзкого autovacuum отсутствует.

Документация с тобой не согласна: https://dev.mysql.com/doc/refman/8.0/en/optimize-table.html


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено kai3341 , 07-Дек-21 10:38 
> Документация с тобой не согласна: https://dev.mysql.com/doc/refman/8.0/en/optimize-table.html

Ознакомьтесь с документацией. Между optimize table и autovacuum есть огромная разница. Начиная с того, что optimize table -- это опция, которую можно не запускать никогда, а вот autovacuum отключать очень не рекомендуется

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


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 09-Дек-21 05:40 
Зависит от типа нагрузки, с одной без optimize table у вас диск переполнится, а с другой можно и автоваккум отключить.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Онаним , 10-Дек-21 09:21 
Каким образом "переполнится диск" без optimize table, если innodb прекрасно умеет писать данные в освободившиеся страницы, не потрудитесь объяснить?

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


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 14:18 
> необходимость богомерзкого autovacuum отсутствует

Богомерзкое - это писать логи. А автовакуум это красота.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Онаним , 10-Дек-21 09:26 
У вас MVCC уже без лога работает?
И даже с индексами?

На самом деле нет. Постгря всё так же прекрасно пишет redo log, просто его назвали wal.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Онаним , 10-Дек-21 09:27 
Тьфу плин MVCC.
ACID, конечно же.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 12:17 
Местные Аноноимы опускают MySQL уже 20-ый год. Но только сейчас до одного из разработчиков MySQL дошло что он занимается фигнёй.  

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 12:34 
Если копры его забросят - получится отличный и стабильный продукт. Надеемся что не начнут хотеть переписать на раст или что-то.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 12:38 
Стагнация ещё ни один проект до добра не доводила.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 13:14 
Пральна, раздать все копрам, и сосать лапу. Иначе же стогнация, нелицензионность и прочая протухаемость.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 16:56 
Ой, да ладно! Составит компанию Firebird, делов-то.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено th3m3 , 06-Дек-21 13:11 
Наконец-то мы были услышаны! Ждём осознания в станах Вордпресса, пехепешников.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 13:33 
Не ждите - у них там религиозный культ.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено 123 , 06-Дек-21 14:29 
В станах "Вордпресса" давно предлагают использовать MariaDB.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено devkornev , 06-Дек-21 12:20 
С новыми проектами - ок, выбор за Postgres. Но что делать, где уже MySQL. Обновление с 5 на 8 выливается в существенное замедление.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 13:22 
Масштабироваться причем вертикально. Горизонтально не каждый сможет.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Кондратий Карлович , 06-Дек-21 12:21 
А как там у постгресс с вакуумом  ??

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено анонимчик , 06-Дек-21 12:25 
он идет

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 14:01 
А как у MySql с optimize table?

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Онаним , 06-Дек-21 20:52 
Тут два вопроса:

1) Зачем конкретно? В большинстве случаев вообще не требуется. Единственное исключение - компактинг избыточно разлапистого индекса.

2) OPTIMIZE TABLE uses online DDL for regular and partitioned InnoDB tables, which reduces downtime for concurrent DML operations. The table rebuild triggered by OPTIMIZE TABLE is completed in place. An exclusive table lock is only taken briefly during the prepare phase and the commit phase of the operation. During the prepare phase, metadata is updated and an intermediate table is created. During the commit phase, table metadata changes are committed.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Онаним , 06-Дек-21 20:53 
Точнее второе даже не вопрос. Онлайновая операция это ныне на InnoDB, которая допускает DML во время выполнения.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено cadmi , 07-Дек-21 15:32 
А как там у mysql с ddl в транзакциях? Научились уже? :)

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 12:32 
> всё в порядке, не утруждая себя сравнением с другими СУБД, которые давно ушли вперёд

Ну ушли себе и ушли, это их проблемы.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено An , 06-Дек-21 12:50 
А ну ребятишки, расскажите про маленькие и средние проекты, когда мускул тащил на себе адсенс гугла, метрику и директ яндекса. А? Это говорит о том, что вы, господа - рукожопы. И не умеете готовить мускул.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 13:10 
На маленьком проекте использовал гугл адсенс. Подключил скрипт JS и всё. Базу не использовал вообще. Путь к скрипту лежал в файлике. Значит можно мускуль заменить на файлик.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 13:15 
Про MySQL в Google Adsense - это миф, никогда он там не использовался. Вы видимо с Facebook путайте.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 13:19 
В mail.ru используют джангу вместе с MySQL и им норм. Но это совершенно не значит что так надо делать всем.  

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Наме , 06-Дек-21 13:49 
> А ну ребятишки, расскажите про маленькие и средние проекты, когда мускул тащил
> на себе адсенс гугла, метрику и директ яндекса. А? Это говорит
> о том, что вы, господа - рукожопы. И не умеете готовить
> мускул.

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


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Онаним , 06-Дек-21 20:47 
На самом деле уже давно нет.
И даже для логов нет. Потому что при обрыве записи эти гигасы вылетят на LOCK+REPAIR, и будет прелесть.
InnoDB очень шустр ныне. Годится и для write-mostly в т.ч. Объёмы итоговые только негуманные, но со сжатием терпимо.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 14:08 
+1

Пусть еще расскажут как замечательно мигрировать без данутайма базу на другой хост.
Или делать шардинг.


Все что касается административной части то у слоника все печально.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Наме , 06-Дек-21 14:53 
> +1
> Пусть еще расскажут как замечательно мигрировать без данутайма базу на другой хост.
> Или делать шардинг.
> Все что касается административной части то у слоника все печально.

Ну Слоника со всем всё прекрасно. Ещё бы кластеризацию запилили и вообще было бы прекрасно.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 15:02 
Расскажи как будешь большую базу нагруженного приложения мигрировать на другой хост без даунтайма

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Наме , 06-Дек-21 16:16 
> Расскажи как будешь большую базу нагруженного приложения мигрировать на другой хост без
> даунтайма

А в чём сложность? Ну не RAC, конечно, но вполне можно довести до приемлемого уровня.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Онаним , 06-Дек-21 20:46 
Можно, вопрос какой ценой.
А в случае мускула всё это очень легко и ненавязчиво.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 07-Дек-21 00:45 
Именно. Или пусть расскажет как будет восстанавливать X траназакций котоые удалили спустя 10-15 секунд PITR.

Хотя что такое 200 потерянных транзакций и кому это может быть интересно.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Alexander , 06-Дек-21 16:41 
уже давно запилили: https://netpoint-dc.com/blog/mariadb-galera-3-node-cluster/

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Наме , 06-Дек-21 17:37 
> уже давно запилили: https://netpoint-dc.com/blog/mariadb-galera-3-node-cluster/

Ну это Мария. А это всё тот же ISAM, только навороченный. Но я не пробовал, ничего сказать не могу.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Alexander , 06-Дек-21 20:14 
>> уже давно запилили: https://netpoint-dc.com/blog/mariadb-galera-3-node-cluster/
> Ну это Мария. А это всё тот же ISAM, только навороченный. Но
> я не пробовал, ничего сказать не могу.

Вы что-то путаете:
---
Конечно, помимо достоинств у кластера Galera есть и ограничения (перевод фрагмента с официального сайта MariaDB):

    Репликация поддерживается только для таблиц в формате InnoDB;
---

Да, я тоже не пробовал :)


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Онаним , 10-Дек-21 09:32 
Какой ISAM, о чём вы. InnoDB к ISAM вообще отношения не имеет, это продукт Innobase, причём эту компаху Oracle купила задолго до санок с MySQL.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 13:27 
лишь бы не брать монгу

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 13:47 
Действительно, когда нужен скуль почему же не взять монгу, хмм.

"Один из разработчиков MySQL раскритиковал проект и рекомендовал использовать PostgreSQL"
Отправлено Наме , 06-Дек-21 13:47 
Совет в духе "переходите с кефира на джек дениэлс".



"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 13:51 
Дык мускуль и задуман как бесплатная поделка для студентов. Никто никогда и не говорил, что он пригоден для коммерческих продуктов. Так что я не знаю, кого он там пугает.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено ыы , 06-Дек-21 14:41 
очень любопытная мысль... не хотите ее развить?
Расскажите нам для чего был задуман PHP, Линукс, автомобиль, колесо...

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 15:31 
Пусть с себя начнет

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено InuYasha , 07-Дек-21 12:40 
вот как рыз вы в кучу мешаете носки с помидорами. PHP был задуман для добавления динамики в хоумпаги, а большой спрос и низкая квалификация родили монстра.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено ыы , 08-Дек-21 22:15 
>а большой спрос и низкая квалификация

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


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Онаним , 10-Дек-21 09:33 
Интернет задумывался как сеть для оборонного ведомства, а 640кб в своё время хватало всем. Windows 1.0 тоже был очередным унылым файловым менеджером для DOS.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Онаним , 10-Дек-21 09:34 
(вещи, которые оказались удобны и востребованы - имеют свойство перерастать себя)

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Онаним , 10-Дек-21 09:37 
Freax тоже когда-то был личной поделкой под себя любимого, просто чтобы миних на 386 не пользовать.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено ыы , 06-Дек-21 14:22 
> не выделяет должных ресурсов, что мешает поддержанию его в виде конкурентоспособного продукта.

Опенсорс в полный рост... А как же разработка сообществом? Где миллион волонтеров пишущих код оптимизатора?


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 16:12 
Не хотят Орацлу земные поклоны отбивать.

"Один из разработчиков MySQL раскритиковал проект и..."
Отправлено arisu , 06-Дек-21 22:10 
> Где миллион волонтеров

давно используют постгрес и довольны. а кто в постгрес нормально не смог… ну, я не уверен, что это хороший вариант для MySQL.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено minonA , 06-Дек-21 15:30 
А всем ли нужен мощный оптимизатор запросов?

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Простоник , 06-Дек-21 15:53 
Хороший вопрос. Ответ зависит от того, сколько этот оптимизатор будет стоить.

"Один из разработчиков MySQL раскритиковал проект и..."
Отправлено arisu , 06-Дек-21 22:12 
> А всем ли нужен мощный оптимизатор запросов?

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


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 17:27 
"но в общем виде работа оценивается как доведение его до уровня технологий начала 2000-х годов"
И вот что ему не нравится. Технологию (пусть и старую) ДОВОДЯТ ДО УМА! А что постгресс? Конфетка уже?

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено bsdun , 06-Дек-21 18:42 
А что никто не говорит про Group Replication в MySQL из каропки, которой в PostgreSQL и в помине нет. Чёт не догоняю чем она отстаёт...

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Имя , 06-Дек-21 19:31 
Вот когда постгрес предложит мне мультимастер из коробки, встроенный колоночный движок и миллион приблуд вокруг потому что протокол мускуля знают все сто лет, тогда я подумаю слезть с марии.
Всему свое, нет серебрянной пули (ну конечно если вы разработкой заняты а не чтением блогов).

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено leap42 , 06-Дек-21 19:59 
>> ...когда постгрес предложит мне мультимастер из коробки...

Опять 25... Зачем нужен мультимастер? Почти любая СУБД тормозит при записи на диск. Если у вас есть другой мастер, то с ним надо реплицироваться. Данные второго мастера тож надо писать другими словами. Производительность НЕ увеличивается. Это работало только с MySQL который всё тянул на одном(!) ядре процессора и иногда упирался в него. Убогий костыль для масштабирования по процу. Postgres уже лет 15 умеет в многоядерность, ему этот бред ни к чему.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Онаним , 06-Дек-21 20:44 
Мультимастер - это не про производительность. Это про возможность продолжить писать в условиях полного отказа одного из мастеров. Пусть даже и с потерей части транзакций.

А для бОльших гарантий есть синхронный мультимастер, Galera Cluster называется.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено ыы , 06-Дек-21 21:01 
>Это про возможность продолжить писать в условиях полного отказа одного из мастеров

В самом деле? Кто бы мог подумать ...

На самом деле все транзакции писавшиеся на отказавшем мастере откатываются... и все что не дошло до другого мастера тоже откатывается. Вы же не зафиксируете половину атомарной записи, правда? :)

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


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Онаним , 06-Дек-21 21:41 
Э-э-э, вы точно себе представляете, как репликация работает?
Я вижу, что нет.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено funny.falcon , 07-Дек-21 08:35 
Какая репликация? Синхронная? Асинхронная? Синхронная с кворумом? На протоколе консенсуса?

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Онаним , 07-Дек-21 09:24 
Та, которая обсуждается. Но это слишком сложно, понимаю.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено funny.falcon , 07-Дек-21 09:47 
Видимо, для вас действительно сложно.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Онаним , 06-Дек-21 21:47 
Ну и я же не зря написал: с потерей части транзакций. Если потеря части данных не вызывает проблем. Для всякой негарантированной статистики - более чем.

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

Если нам нужен мульти-мастер с синхронностью и откатом - берём галеру. Там да, не завершённая транзакция откатывается со всех узлов. Но при этом нам не нужно ничего "переключать" - как только транзакция упавшего мастера откатится, следующие будут выполнены. Более того, мы можем на любой мастер писать.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Наме , 07-Дек-21 13:37 
Если нужен "мультимастер", то берём Oracle RAC, а БД размещаем поверх ceph.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено leap42 , 07-Дек-21 08:06 
>> Мультимастер - это не про производительность. Это про возможность продолжить писать в условиях полного отказа одного из мастеров. Пусть даже и с потерей части транзакций.

Вы не слушайте того кто вам такое говорит, он вообще не шарит.  Когда primary отказывает, ближайший standby становится мастером сам. Всё. Почему это лучше мультимастера? - Очень легко избежать split brain. С асинхронным мультимастером избежать split brain вообще не всегда возможно - вопрос только "когда". Синхронный мультимастер ставит на колени производительность при географическом удалении нод в 100%, и почти всегда даже если они рядом.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено funny.falcon , 07-Дек-21 08:41 
Согласен на 99.99%

Мультимастер действительно более живуч. Но действительно тормознее.

Практически ни кому живучесть мультимастера не нужна. Время переключения реплики - обычно меньше 1 минуты (чаше всего, 10-20 секунд). Пять переключений в год - это доступность 99.999%. Этого достаточно даже для маркетплейсов и банков (хоть они и заявляют шесть девяток, но рады и пяти девяткам).


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Наме , 07-Дек-21 13:39 
Наоборот мульти-мастер это про производительность. Просто единственный реализованный нормальный мультимастер это RAC, где энное кол-во экземпляров работают с одним набором файлов данных (которые сами могут быть пространственно размазаны поверх сетевой фс). А галера эта муть какая-то.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 06-Дек-21 20:35 
GOOGLE vs ORACLE

Мужик-же просто отрабатывает подъемные у нового (старого) работодателя.
Все, увы, банально и старо, как мир. :)


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Онаним , 06-Дек-21 20:43 
Што, мужику отказали в возможности безальтернативный VACUUM в MySQL добавить? Так не приживётся он там, без него хорошо.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Фан , 07-Дек-21 00:04 
MySQL будучи карманной игрушкой Oracle по определению не может быть конкурентноспособной РСУБД, по причини наличия у Oracle своей собственной РСУБД

Слон же не принадлежит никому и поэтому искуственных палок в колеса ему не вставляют, есть еще Firebird, но это классическая РСУБД без новомодных приблуд, к слову очень хорошая


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноньимъ , 07-Дек-21 09:38 
А натуральные вставляют?
Должен ли велик быть обязательно чьим-то чтобы вставлять ему палки в колёса?

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Старший аноним , 07-Дек-21 10:31 
У вас какой уровень IQ, вьюноша?
Oracle взял свистоподелку и слепил из нее нормальный продукт.
Но если изначально были родовые травмы, то от них очень трудно избавиться.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено ыы , 07-Дек-21 10:57 
>Oracle взял свистоподелку и слепил из нее нормальный продукт.

Oracle купил (не взял, а именно купил) за много много долларооов, систему которая в тот момент уже  надежно работала на половине сайтов в инете.
После продажи, автор, сделал крутой финт ушами- он потребовал чтобы Oracle вернула mysql сообществу.. и когда оракл покрутил пальцем у виска - автор сделал форк...
с тех пор так все и идет- оракл делает СО СВОИМ  mysql то что считает нужным, а сообщество периодически недовольно ропщет недовольное СВОИМ mysql...


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено ыы , 07-Дек-21 11:28 
1 миллиард долларов США если интересно :)

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено ыы , 07-Дек-21 11:30 
к половине сайтов в интернете надо еще прибавить небольшую социальную сеточку...

"Один из разработчиков MySQL раскритиковал проект и..."
Отправлено arisu , 07-Дек-21 12:08 
> к половине сайтов в интернете надо еще прибавить небольшую социальную сеточку...

не надо. там от продукта жизнедеятельности монти осталось примерно столько же, сколько в их компиляторе php от оригинального php.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Фан , 08-Дек-21 20:55 
В чем смысл коммерческой корпорации Oracle вкладывать в MySQL в ущерб своей Oracle? Или Oracle Corporation уж стал Oracle Foundation? И не разрабатывает MySQL по остаточном признаку

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено ыы , 08-Дек-21 22:18 
Мускул ниразу не конкурент ораклу. Совершенно разные целевые сегменты...
мускулем они закрывают нишу... и делают совершенно правильно.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено www2 , 23-Дек-21 13:12 
Версий много и все они могут быть правдивы как по отдельности, так и вместе:
- диверсифицируют риски,
- расширяют количество потенциальных клиентов,
- предоставляют полный сервис по решению проблем клиента в комплексе, а не ограничиваются задачей впарить один конкретный продукт всем подряд.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 07-Дек-21 00:33 
Выглядит как чувак не смог (занимался оптимизацией, которая по итогу оказалась на уровне 2000-х), ему сказали "и за что тебе платить?", он обидился, свалил и решил нагадить под дверь ораклам.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Виктор , 07-Дек-21 05:45 
Используйте инструменты по назначению, да не везде будут фишки остальных баз. Но свои функции для сайтов вполне справляется, если ты не фирма гигант конечно же!

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено 1 , 07-Дек-21 11:41 
Не вижу комментариев - зачем они нужны, когда есть SQLite ?

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено ыы , 07-Дек-21 11:47 
Это настолько самособой разумеется, что даже холиварить повода нет...

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 07-Дек-21 15:06 
зачем нужны комментарии?

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено InuYasha , 07-Дек-21 12:45 
> Oracle не выделяет должных ресурсов

Смешно. Не то чтобы они купили май для захоронения, но вообще Oracle скатывает всё в помойную яму, какапывая тоннами лицензий, контрактов, подписок и поливая вендорлоками.


"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Аноним , 08-Дек-21 20:59 
Что первое что второе - детские погремушки на фоне того же mssql.

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено ыы , 08-Дек-21 22:19 
mssql на линухе уже научилась через шаред мемори работать?

"Один из разработчиков MySQL раскритиковал проект и рекомендо..."
Отправлено Онаним , 10-Дек-21 09:40 
В MSSQL особо убивает стохастика оптимизатора - финальный план запроса может меняться 100500 раз при просто последовательном выполнении одного и того же запроса. Мало того без профайлера не разгребёшь, где засада, так ещё и каждый запуск выливается в разные планы, и результаты профайлера не бьются друг с другом. Наши виндодевелоперы с ним трахаются с завидной регулярностью.

"Один из разработчиков MySQL раскритиковал проект и..."
Отправлено arisu , 10-Дек-21 11:02 
как удивительно: сервер видит повторяющиеся паттерны — и оптимизирует под них. вот же гад какой, а!

"Один из разработчиков MySQL раскритиковал проект и..."
Отправлено Онаним , 10-Дек-21 12:09 
Ды не, если бы он стабильно делал, а там именно стохастика где-то, потому что планы таки повторяются, но в ряде случаев для этого надо, чтобы фаза луны сошлась. По незадаче, это как раз те случаи, где запрос здоровый, и есть какая-то проблема... которую потрекать даже с профайлером трудно, поскольку стохастика не даёт предсказать результат изменений в самом запросе.

"Один из разработчиков MySQL раскритиковал проект и..."
Отправлено arisu , 10-Дек-21 12:18 
ну. пробует разные планы, ведёт статистику. в принципе, нормальный метод оптимизации — для реальных нагрузок, где несколько плохих планов нивелируются последующими выигрышами. вполне логично, что при таких раскладах бенчмарки имеют такой же смысл, как и любая другая ИБД.

"Один из разработчиков MySQL раскритиковал проект и..."
Отправлено Онаним , 10-Дек-21 12:31 
Ды там дело не в бенчмарке. Там проблема проблему трекнуть.
Оно на половине его стохастики допустим где-то костыляется, и вместо 0.01 сек выдаёт 2-3 сек на том же запросе, при _отсутствии_ параллельных запросов - в идеальном сферическом тесте в вакууме. При этом план совершенно другой, чем вызвано - никто не объясняет, как фиксить - непонятно.

"Один из разработчиков MySQL раскритиковал проект и..."
Отправлено Онаним , 10-Дек-21 12:33 
(точнее понятно, и уже зафиксили) Разбили запрос на три и объединение через хранимку, в итоге вместо 0.01-2.6 стали почти стабильные 0.07-0.14, плохо, но лучше, чем вот та задница.