Кто что думает по поводу нового модуля Queryable Variables?
Разработчик пишет, что якобы модуль позволяет повысить производительность за счет перестройки работы с переменными Друпала и модулей в базе данных. Если я правильно понял.
Хотелось бы услышать мнение специалистов.
Комментарии
Сомнения есть. Посмотрел код модуля. Автор разнес разные типы данных по разным полям таблицы и по каждому из полей сделал индекс. Это быстрей для выборки данных, но обновление большего числа индексов не лучшим образом скажется на вставке данных (в таблице определено 13 индексов). Операция variable_get в версии автора использует 3 запроса с INNER JOIN по таблице к самой себе, в друпаловском variable_get — 1 запрос с WHERE по текстовому ключу. Операция variable_set чудесным образом определяет типы данных и раскладывает их по полочкам (разным полям записи) — замечательно, но эти доп. действия тоже не добавляют производительности.
На мой взгляд, если уж хочется использовать механизм variables друпала для хранения больших объемов данных (зачем?), то стоит поступиться эстетикой и разбить variable на несколько таблиц для хранения каждого типа данных в своей таблице. И понаделать функций типа variable_set_int(), variable_set_date() и т.д., т.е. возложить проверку типов на программиста.
Ещё в readme к модулю много букв про интеграцию с views, в коде тоже по этому поводу несколько ф-ций. Смотреть не стал, мейби там сокрыта основная ценность модуля, но предложенная автором альтернатива для variable_get/variable_set мне не понравилась.
Axel, большое спасибо за описание!
Благодарю, полезно и познавательно. Может еще у кого есть мнения относительно модуля?