Среди разработчиков баз данных уже много лет продолжаются обсуждения, касающиеся серьёзной неисправности в MySQL — триггеры не выполняются после обновлений или удалений внешних ключей. Впервые этот баг был заявлен в июне 2005 года и еще более удивительно, что он остается неисправленным уже 20 лет спустя.
Триггеры, являясь важным средством обеспечения целостности данных, должны автоматически запускаться в ответ на действия обновления или удаления записей. Однако в MySQL известная проблема того, что каскадные действия внешних ключей не активируют эти механизмы, всё еще актуальна.
Реакция сообщества и последствия
После первоначального признания проблемы командой MySQL, ожидалось, что она будет устранена в версии 5.1, однако этого не произошло. Руководство по MySQL документирует, что каскадные действия действительно не активируют триггеры, и это вызывает серьёзные угрозы для ACID-интегритета. Пользователи неоднократно обращали внимание на проблему, в том числе в 2015 и 2020 годах, указывая на её долговечность.
С приобретением MySQL корпорацией Oracle в 2010 году, надежды на исправление багов возросли. Тем не менее, многие считают, что отсутствие действий по исправлению со стороны Oracle — это пренебрежение, особенно с учётом стратегической важности проектов для индустрии. В то время как MySQL остаётся популярным продуктом, его распространение, по данным DB-Engines, постепенно сокращается, в то время как PostgreSQL наоборот набирает популярность.
- Несколько разработчиков перешли на PostgreSQL, указывая на этот баг как на последнюю каплю.
- MariaDB, ответвление MySQL, также не решила данную проблему.
- Ситуация порождает шутки о том, что подобное поведение уже можно считать «фичей» MySQL.
Стоит отметить, что в свете недавних дискуссий, выбор между MySQL и PostgreSQL становится всё более значимым среди разработчиков, стремящихся к надежности и целостности базы данных. Тем временем, Percona и её основатель Питер Зайцев указывают на недостаточную поддержку MySQL в инженерии производительности и предостережение от возможных рисков в облачных возможностях, таких как Heatwave от Oracle.