> Угу. Вот только есть особенности, которых этот стандарт совершенно не учитывает. Например,
> собственно, механику работы движка, которую он никак не описывает.И какие такие критические особенности движка MySQL надо учитывать при разработке под него? Мне вот правда интеренсо.
> Поэтому в общем случае голого стандарта достаточно только для микронных баз и
> примитивных паттернов доступа. Для всего остального начинается специфика.
Пример такой специфики в студию.
> Да нет. Написано в целом достаточно нормально, вот только... как раз таки
> абстракция от движка БД не позволила использовать специфику. В итоге приходится
> пилить руками.
Вот не надо ля-ля. Код там ужасен. Я уж молчу что переключение между СУБД производится на стадии компиляции. Прям у нас движков абстракции под C нет. Тот же libdbi можно взять.
> Заглядывать - мало. Недавно этот код по сути ныне до ума довел,
> во всяком случае самые жесткие затыки в нашей боевой инсталляции исчезли.
> Правда патчем это толкать в оригинал бессмысленно, поскольку оно теперь MySQL-only.
Это говорит о том что это хреновое решение. Фактически для исправления проблем у zabbix требуется запилить там нормальную работу с транзакциями. И это худо бедно начнет нормально работать в том числе и на MySQL.
> Транзакции там только усугубят ситуацию. Основная проблема внутри заббикса - в "универсальных"
> удобных коду выборках, не учитывающих особенности движка. Причем в самых-самых критических
> местах. После переписывания десятка оных всё становится на места.
У zabbix основная проблема плохой работы на MySQL это массированные атомарные записи в базу. Если это переделать на транзакции станет заметно лучше. То что они читают все без разбора меньшее зло.