10:44 

Ссылка на дневник

alhames
alhames.ru
Не подскажите как на дайри работают псевдотеги [J][/J] и [L][/L]?
Текст парсится в момент добавления в БД и все псевдотеги заменяются на реальные? Тогда его объем увеличивается, и необходим обратный парсинг для режима редактирования.
Но по моим наблюдениям если в ручную написать html-теги, на которые заменяется [J][/J] - то в режиме редактирования они так и останутся html-тегами.
Заменять все ссылки на дневники при выводе - но ведь это сколько накладных расходов, искать каждый раз в бд по содержимому тега [J][/J]
Или может есть какой-то способ оптимизации?
Аналогично - каким образом это реализовано на ЖЖ, Ли.ру и других блогохостингах?

@темы: Оптимизация

Комментарии
2011-02-14 в 10:46 

Драконофил
Ученик золотой рыбки.
Судя по тому, что при удалении пользователя его ник зачеркивается - то обработка идет в момент вывода.
Накладных расходов - при правильной архитектуре - там не так много.

2011-02-14 в 10:50 

alhames
alhames.ru
Драконофил и чтож это за архитектура такая?
Просто мне сейчас придется реализовывать нечто подобное, поэтому пытаюсь задуматься над оптимизацией заранее, а не схватившись за голову искать откуда у меня на странице по 2 сотни запросов к БД )

2011-02-14 в 10:56 

Драконофил
Ученик золотой рыбки.
alhames
Нагрузка на сайт какая планируется? Хитов?

2011-02-14 в 10:59 

Co0L
шпиён администрации
Гений, миллионер, семьянин, мизантроп.
Во многих движках делается сохранение текста в 2 поля - с BB кодами и с HTML)

2011-02-14 в 11:03 

alhames
alhames.ru
Ну чтоб выдерживала до 1к уников в сутки. В среднем по 5-10 запросов на посетителя.
А вообще списывать на малую посещаемость отсутствие оптимизации крайне не хотелось бы.

2011-02-14 в 11:06 

alhames
alhames.ru
Co0L ну тогда объем возрастает в двое, и в случае с дайри этот объем далеко не маленький..

2011-02-14 в 11:12 

Co0L
шпиён администрации
Гений, миллионер, семьянин, мизантроп.
alhames
Относительно дайри точно знаю, что текст всплывалки с сокращенным текстом записи/комментария хранится в отдельной таблице) Увы, кэширование всегда работает в ущерб объему данных)

2011-02-14 в 11:16 

 
На дайри в базе хранится конечный код (тот, который выдается пользователю), а при открытии на редактирование делается обратная трансформация. Раньше (несколько лет назад) хранился исходный текст в отдельном поле, но потом от этого оказались, предполагаю, что ради уменьшения размера базы.
Но по моим наблюдениям если в ручную написать html-теги, на которые заменяется [J][/J] - то в режиме редактирования они так и останутся html-тегами – я только что проверил, заменяется. Мне кажется, вы где-то опечатались при наборе этих тэгов )

2011-02-14 в 11:53 

alhames
alhames.ru
Co0L ну, для сокращенного текста я и сам использую отдельное поле)
Обычно объем данных та мне слишком велик.

La personne mystique я проверял не сейчас, а года два назад, если не больше )
А как бы с [J]несуществующийник[/J] - раньше если человек менял ник, то все прежние обращения к нему становились нерабочими.
Скажем, если пользователь сменил ник или адрес дневника - этож надо будет прошерстить всю бд чтоб заменить все старые обращения.

2011-02-14 в 12:00 

 
Скажем, если пользователь сменил ник или адрес дневника - этож надо будет прошерстить всю бд чтоб заменить все старые обращения.
Ну если заморочиться, можно, например, в отдельной табличке хранить список пар userid-postid, хранящих посты, в кот. есть ссылки на юзера) А в отдельных случаях можно обойтись даже FULLTEXT-индексом (хотя фиг знает, что лучше, но FULLTEXT нередко бывает там и сам по себе, ради поиска по тексту).

2011-02-14 в 12:09 

alhames
alhames.ru
Я думаю FULLTEXT при таком способе в любом случае будет присутствовать, но, скажем я захотел сменить ник - за 5 лет записей содержащих мой ник могла накопиться не одна тысяча.
С другой стороны, смена ника довольно редкая операция. Если мне не изменяет память, менять ник можно было не чаще раза в месяц, да и то в определенное время (или это из другой оперы?:gigi: ) - соответственно пробежаться в фоновом режиме по 5-10 тыс. записей не так уж и тяжело..

2011-02-14 в 12:23 

 
Если мне не изменяет память, менять ник можно было не чаще раза в месяц, да и то в определенное время (или это из другой оперы?:gigi: )
Угу, с 1 до 12 часов и раз в месяц (но последнее ограничение можно снять по смс). 5-10 тыс. записей в это время меняются безболезненно. Не будет же все население блога в один час менять ники (а хороший бы флэшмоб на дайри вышел, а?).
Но сразу нужно думать о том, что, если, например, твой ник звучит как "the", то он, скорее всего, в индекс не попадет как стоп-слово. И нужно придумывать фичу для уверенного поиска совпадений. Поэтому я и говорил про "отдельные случаи" )

   

@web-программирование

главная