Re[3]: "с моим участием"
От: Pavel Dvorkin Россия  
Дата: 22.09.14 16:14
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>>Насколько я понимаю, это означает "если я хоть-что то в этот тред написал", так ?


AVK>Или являешься его автором. Да.


Ну если автор, то уж точно написал

PD>>ИМХО было бы лучше, если бы это означало "это сообщение есть некий потомок любого уровня от моего сообщения". Понимаю, что реализовать это сложнее.


AVK>Это не просто сложнее, это, без сильного разрастания размера БД, просто невозможно. Для такого требуется хранить в проиндексированном виде табличку вида (thisid, parentid) для всех возможных комбинаций конкретного родителя и всех его потомков. По грубой оценке это примерно 300М записей. 8 байт запись + минимум один индекс по parentid * 50% fill factor получаем 9Гб табличку уже сейчас. А у нас вся БД — 30.

AVK>Второй вариант — хранить табличку вида (topicid, userid, lastreplyid) и обновлять ее рекурсиным способом при каждом ответе. Здесь размеры уже будут поскромнее — примерно 5М записей. при индексах по topicid и userid получаем 400М. Но резко замедлится добавление сообщения — придется при каждом посте грузить весь топик в память, либо мудрить что то с hierarchyid

А нельзя ли просто хранить у каждого сообщения его родителя ? Рекурсивный подъем пока parent!=null && parent.author != login ?
With best regards
Pavel Dvorkin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.