MySql против колонок.
Так случилось, что у меня жестко пригорает от того, что на работе форсят вместо колонок для неиндексируемых полей пихать все в JSON поле data, мотивируя тем, что лишняя колонка в реляционной, карл, БД это оверкил, что сейчас MySQL эффективно ищет и по внутренностям JSON полей если уж что-то нужно, и по памяти эффективней и миграции лишний раз тяжелые гонять не надо..
По мне так это противоречит самой сути реляционных БД, которые сделаны и оптимизированы на то, чтобы организовывать все в колонках. Единственный юз-кейс для меня для JSON полей, это если тебе надо хранить что-то, структуру чего ты не знаешь на момент создания таблицы или она изменчива.
Что вы об этом думаете? Плюсы / минусы?
Ну это тупик для РБД. JSON либо вообще нельзя, либо очень трудно обрабатывать в реляционной БД
Ты правильно мыслишь. Можно хранить какие-то данные при условии что они никогда не будут использоваться, обрабатываться в БД, только отдаваться вовне
Просто у тебя некомпетентные коллеги...
коллеги то вполне опытные ;) их можно понять: там много баз и не хочется лишний раз гонять миграции с многогибабайтными бэкапами.. но меня воротит от подхода, а помимо "концептуальных" возражений каких-то практичных аргументов нет, помимо "гипотетической" необходимости поиска или использованию по полю в будущем
Если такую чушь несут — однозначно НЕТ! (может и опытные, но безграмотные, это могу допустить)
Практичный аргумент очень простой — сделай попробуй поиск по полю из JSON, да ещё которое не обязательно (они все такие) и чтобы работало быстро на наборе данных в несколько миллионов записей
тестирование это правильно
Опыт != компетентность, особенно там, где дело касается баз данных. ;( > а помимо "концептуальных" возражений Производительность, производительность и производительность (я другого пока не увидел) — это не концептуальные возражения, нет? ;) Я к тому, что если для вас это единственная проблема этого подхода — храните хоть в JSON, хоть в blob. Подобные темы неоднократно обсуждались в соседних чатах, кстати (особенно "любимая" — как хранить разные (расширяемый набор) атрибуты номенклатур).
Обсуждают сегодня