Что быстрей? CCK + views или taxonomy?

Главные вкладки

Аватар пользователя Joe Black Joe Black 10 декабря 2007 в 18:22

Здравствуйте, уважаемые профи!

В drupal можно структурировать информации как с помощью таксономии, так и с помощью CCK + views.

Вопрос: какой модуль быстрее работает, делает меньше запросов к БД?

А может их лучше использовать вместе?

Комментарии

Аватар пользователя Dimm Dimm 10 декабря 2007 в 19:22

Используй пока возможно таксономию - она под структурирование и заточена, и модулей под нее куча.
Если уже не хватит возможностей таксономии, то подключай CCK + views - но тут уже вручную больше прийдется писать.

Аватар пользователя Joe Black Joe Black 10 декабря 2007 в 20:08

Вот смотрите, есть сайтик http://romasky.ru/view/katalog

Так вот там структурирование через таксономию, а там где район, через cck_field.

И там - и там все нормально структурируется.

Вопрос в том, что быстрее работает в данном случае? Какой из этих способов будет меньше посылать запросов к базе данных?

Помогите, пожалуйста, найти ответ на эти вопросы. А то не где про быстродействие на данную тему не нахожу ответа....

Аватар пользователя Dimm Dimm 10 декабря 2007 в 20:40

Ну допустим терминов таксономии у тебя будет 100 а нод 1000-10000.
Думаю быстрее будет работать с таблицей таксономии т.к. она меньше.

Аватар пользователя Joe Black Joe Black 10 декабря 2007 в 21:10

Значит, если создам новую общую cck_text и пропишу туда данные (например списком 1 | дом, 2 | дверь, 3 | окно, выбор будет списком) и подключу к разным типам контента, то оно не будет подключаться к нодам, а будет копировать саму себя в каждую ноду что-ли, или как-то по другому?

Аватар пользователя dracs dracs 10 декабря 2007 в 21:25

Мне кажется однозначного ответа по производительности не получить.
Конечно копироваться будет не в ноду, а будет создаваться ссылка на
окно,дом,окно и прочее, иначе это была бы не БД (точнее, как с ней
работать)
По моему субъективному мнению, нагрузка словара таксономии
существенно замедляет работу. Математику еще не смотрел в глубине,
но думаю связано с тем, что словатрь штука как бы глобальная,
и словать можно назначать не одному а нескольким видам
сожержимого, а ССК+Виды это какието конкретные документы.

Аватар пользователя Joe Black Joe Black 10 декабря 2007 в 21:42

Допустим у меня есть 100 терминов и 10.000 нод, node_field (где тоже 100 значений) и 10.000 нод.

Какой вариант будет быстрее?

Я тестировал на views + cck + taxonomy.

Выбирал сортировку сначала по одному термину из таксономии, а потом по одному из cck (node_field).

Получилось одинаковое количество обращений к базе.

Подключайся народ! Тема вроде интересная, очень хочется в ней разобраться!

Аватар пользователя dm66 dm66 10 декабря 2007 в 22:03

Делал такое же тестирование, с помощью модуля devel разницы не заметил, выходило приблизительно одинаково по скорости и запросам, что с таксономией что с ССК

Аватар пользователя Joe Black Joe Black 10 декабря 2007 в 22:09

Вот поэтому и интересно, как это все будет работать при большом объеме данных!? Smile

Народ! Давайте думать вместе!

Аватар пользователя dm66 dm66 11 декабря 2007 в 14:37

Если интересно, посмотри: http://hturkey.ru сделан полностью без использования таксономии. Модуль таксономии вообще отключен за ненадобностью. Почему без таксономии спросите вы? А потому что CCK и views дает более гибкие возможности для автоматической генерации путей и выборок. Ручной работы получается меньше, и пути атоматом красивые делать можно, с произвольным вложением плюс произвольную сортировку можно делать, плюс при необходимости задавать текст над и под выборкой (правда тут автоматизм несколько теряется, но процедура быстрая и не сложная). В таксономии такого просто так не сделаешь. По производительности, уже писал, что прежде чем перейти на такую систему, провел поверхностное тестирование, из которого сделал вывод что разницы особой нет. Даже с ССК чуть быстрей иногда выходило.
Единственный пока что замеченный минус, то что таким образом нельзя делать подчиненных (древовидных) "терминов".
То есть нельзя сделать такого:

Словарь.
-Термин1
--Термин2
--Термин3