В экспериментальную ветку СУБД MariaDB 5.3 добавлена поддержка динамического создания столбцов, что позволяет использовать в изначально реляционной СУБД некоторые возможности noSQL-систем. Код MariaDB основан на кодовой базе MySQL, дополненной рядом расширенных функций, оптимизациями производительности и новыми движками хранилищ.
При помощи представленного новшества теперь можно на лету добавлять в уже созданную таблицу новые столбцы без предварительного изменения схемы данных. При этом каждая строка таблицы может содержать различный набор столбцов. С точки зрения реализации, с каждой записью в таблице ассоциируется хранящийся внутри блоба хэш из наборов ключ/значение. Для манипуляции с подобными хэшами подготовлен специальный набор функций. Напрямую значения дополнительных полей фигурировать в SQL-запросе не могут, но к ним можно обращаться через интерфейсные функции, например: "SELECT COLUMN_GET(blob, 1 as char(10)) as color, count(*) FROM t1 group by COLUMN_GET(blob, 1 as char(10));";
|