После года разработки и четырёх предварительных выпусков подготовлен первый стабильный релиз новой ветки СУБД MariaDB 10.4, в рамках которой развивается ответвление от MySQL, сохраняющее обратную совместимость и отличающееся интеграцией дополнительных движков хранения и расширенных возможностей. Поддержка новой ветки будет осуществляться 5 лет, до июня 2025 года...Подробнее: https://www.opennet.me/opennews/art.shtml?num=53225
Ждем ебилдов.
Как они задолбали своей марией. После установки мускуля незя нормально к нему подключиться без шаманства как раз таки из-за этих марий по умолчанию
Из-за чего это? Порт по-умолчанию другой?
> Из-за чего это? Порт по-умолчанию другой?Мне аж стало интересно. Если в системе 2 инстанса, ну или мария с мускулулом и у обоих skip-networking то есть только по сокетам. А из клиента я подключаюсь как localhost. Сервер по портам определять имя сокета будет? По другому это работать же просто не может, но видимо именно так он и делает.
> Сервер по портам определять имя сокета будет?Не понял вопрос, но у меня есть теория. В дистре анонима при установке двух серверов настройки порта/сокета выносятся в секции конфига типа [mysqld.blabla1] и [mysqld.blabla2]. Из-за чего секция [mysqld] оказывается пустая и клиенту в любом случае надо указывать название секции или сокета, что и не нравится анониму. Но правды, похоже, я так и не узнаю.
>> Сервер по портам определять имя сокета будет?
> Не понял вопрос, но у меня есть теория. В дистре анонима при
> установке двух серверов настройки порта/сокета выносятся в секции конфига типа [mysqld.blabla1]
> и [mysqld.blabla2]. Из-за чего секция [mysqld] оказывается пустая и клиенту в
> любом случае надо указывать название секции или сокета, что и не
> нравится анониму. Но правды, похоже, я так и не узнаю.Скорее всего так.
Просто в mysql единственное клиент-серверное ПО, которое я знаю, в котором весьма странно решили реализовать подключение через сокет, по ключевому слову localhost, возможно для совместимости с оффтопиком, где сокетов нет вообще. И не все знают что localhost и 127.0.0.1 это в mysql не одно и тоже, по крайней мере в линуксе. И возможно, все проблемы из-за этого.
Я никогда не использовал более 1-ого инстанса и всегда использовал skip-networking и localhost не задумываясь как сервер определяет имя сокета если я его не указываю, так как он у меня всегда был 1.
А сейчас я просто представил, что будет если у меня будут 2 инстанса и все со skip-networking с разными сокетами, а порты разные не все догадаются поставить разные, ведь я хочу по сокету работать и можно подумать порт мне вообще не нужен.
А mysql, видимо работая через сокет именно по порту определяет к какому сокету ей подключаться. То есть порт нужен даже если не используется сеть.
А можно же было просто в подключении по сокету вместо хоста и порта указать имя сокета, или если порт 0, то перед ним идёт имя сокета а не имя хоста (как в redis) и проблем с пониманием было бы меньше.
> А mysql, видимо работая через сокет именно по порту определяет к какому сокету ей подключаться. То есть порт нужен даже если не используется сеть.Да нету такого. mysql (клиент, который) берет название сокета из конфига (секция в --defaults-group-suffix указывается) или напрямую (--socket).
> Да нету такого. mysql (клиент, который) берет название сокета из конфига (секция в --defaults-group-suffix указывается) или напрямую (--socket).https://www.php.net/manual/ru/mysqli.quickstart.connections.php
Видимо я всё в кучу на мешал.
Действительно можно указать сокет.
mysql -S /path/to/socket> А из клиента я подключаюсь как localhost
нет, из клиента ты при skip-networking подключаешься к дефолтному юникс-сокету. Дефолтный - тот, который задан при компиляции.
Это такой костыль в libmysql для макак, программирующих на пхп со словарем - если задан localhost, то сначала пробуем сконнектиться на дефолтный сокет.
Всё элементарно делается - https://blog.tavda.org/mysql_install
> сохраняющее обратную совместимостьнихрена не сохраняющее. тот же json сделали абы как (это алиас к varchar, а не отдельная структура как в ваниле)
longtext там на самом деле...
json сам по себе обы что и абы как, его нельзя нормально сделать.
Можно повспоминать, что в момент форка непосредственной поддержки json ещё не было.
Так что да, "сохраняющее", но не обязательно "поддерживающее".
> Можно повспоминать, что в момент форка непосредственной поддержки json ещё не было.
> Так что да, "сохраняющее", но не обязательно "поддерживающее".да, вот эти человеки пошли своим путем, запилили первыми свой недо-json и теперь хрен знает как они это фиксить будут. заявили бы, что поддерживают совместимость на уровне mysql 5.5, например, тогда бы вопросов меньше было.
а то сейчас развелось много дилетантов, которые думают "maria - это тот же mysql, только круче/моднее/хайповее". приходится с этим вступать в конфронтацию.
> Осуществлён переход на новую ветку библиотеки PCRE2 (Perl Compatible Regular Expressions), вместо классической серии PCRE 8.x.PCRE2 вышел 5 лет назад. git добавил поддержку 3 года назад.
https://git.kernel.org/pub/scm/git/git.git/commit/?id=94da91...
В Nginx так и ге завезли, хотя это все припарки. Intel Hyperscan simd regexp их всех уделывает в десятки гбит
Не слышал, хотя в Debian уже почти 4 года как есть. Наверняка, так быстро только с использованием всяких AVX, а в дистрибутивах собирают для generic amd64, чтобы у всех работало и выиграша нет. Да и, может, оно сильно не совместимо по API / синтаксису.Смотрю в Debian при сборке nginx TLS 1.3 чуть больше недели назад включили. Да и Lua всего 5.1.
Уже и JIT редакция есть https://habr.com/ru/company/iponweb/blog/465441/
> Конструкция DROP TABLE теперь надёжно удаляет таблицыЛучшее изменение ever!
>Добавлен движок хранения ColumnStore, который хранит данные в привязке к столбцамТак я не понял это что clickhouse в опасности?
Есть немного, надо затестить.
Когда-то колумнстор был тормознее, но тут хорошие плюшки из-за соседства с обычными таблицами.
В сиквеле это соседство оч хорошо заходит.
По функционалу нет и по производительности даже не близко. Ядро mysql имеет кучу болячек.
INET6 это ужасный костыль, в PostgreSQL идеальное решение с универсальными типами.
В Clickhouse подход как и в MariaDB... INET6 и INET4 отдельно типы данных....
Я в MySQL/MariaDB использовал BLOB с преобразованием INET6_ATON, INET6_NTOA. Тогда тоже можно и IPv4 и IPv6 хранить в таком поле.
А правильно его хранить в VARBINARY(16) NOT NULL в двоичных данных!
P.S. VARBINARY, а не BINARY потомучто там может быть и IPv4.
Очень удобно работать с бинарным блобом...
> Очень удобно работать с бинарным блобом...Ну хоть как-то работать. Но если реально нужно такие данные массово хранить, то стоит задуматься о лучшем хранилище, PostgreSQL, например.
> Очень удобно работать с бинарным блобом...Да! И места занимает минимум, и интерпретируется однозначно (один и тот же IPv6 можно по-разному представить в цифровой форме, а в бинарке он всегда один и тот же), и благодаря INET6_ATON() и INET6_NTOA() его очень удобно переводить из одной формы в другую при записи и чтении.
Когда ж вы отучитесь говорить "CD-диск".
Blob - binary large object. И binary blob получается... Binary binary large object. Маслим масло масленным маслом.
О! Разблокировали уже https://www.opennet.me/opennews/art.shtml?num=53188
Хорошо хоть с политкорректностью не связываются
> "REPLICATION MASTER ADMIN", "REPLICATION SLAVE ADMIN"Расисты!!!!11адынадын
)))
кстати про графы в RUST lang тут хорошо написано
https://aminb.gitbooks.io/rust-for-c/content/graphs/
Тонкий способ лишний раз пропиарить Rust.
Критический баг в режиме строгой группировки уже 3.5 лет всё никак не могут исправить. https://jira.mariadb.org/browse/MDEV-11588
Досадный баг в RocksDB даже не начинали. https://jira.mariadb.org/browse/MDEV-20199
А на JSON-операторы им и вовсе положить. https://jira.mariadb.org/browse/MDEV-13594
Печально. :-(
С момента появления MySQL 8.0, MariaDB стал не нужен.
Дохрена всего !