Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] Хранение контента

Ответить
Настройки темы
[решено] Хранение контента

Аватара для Mihahail

Новый участник


Сообщения: 47
Благодарности: 1

Профиль | Отправить PM | Цитировать


Попросили сделать блоговый движок для высоконагруженного сайта.
Чесноговоря никогда ещё не делал ничего подобного, в основном всё по мелочи - игровые порталы и клановые сайты, иногда даже на укозе)

Вот что придумал в связи с высоконагруженностью:
Все материалы хранить в виде текстовых файлов по папкам, а в базе данных создать такую таблицу: ID -- link -- title -- author -- date -- <some flags>
Соответственно обращаться к базе лишь за урлом материала и инклудить его.
Но самое главное, некоторый контент в базе всё-таки хранить. Этот контент - недавно добавленные материалы (то есть кагбэ кэшировать)
Сайт предусматривает схему, подобную большим блогам(например хабру): есть десяток-другой материалов, которые некоторое время активно и многими просматриваются. Их следует хранить там, откуда их можно быстро отдать клиенту. И есть давние материалы - которым больше суток, и которые я как раз собираюсь хранить в текстовом виде.
Это замедлит доступ к ним, но ведь их и просматривать будут нечасто по сравнению с остальными.

Мой вопрос заключается в том, поможет ли такое хранение высоконагруженному сайту? Есть ли в этом смысл?
Повторяю, я в таких вопросах некомпетентен и поэтому эта идея может быть бредом. В таком случае прошу что-нибудь толковое посоветовать.

Отправлено: 19:52, 02-01-2012

 

Deadooshka


Сообщения: 2517
Благодарности: 692

Профиль | Отправить PM | Цитировать


БД надежнее, и имеет необходимый инструментарий. Кладите контент в отдельную таблицу. Механизм кэширований мб разным, многоуровневым. Для кэширования сложных запросов, блоков, страниц - обычно используют memcache, memcached или подобные (кэш в ОЗУ), хотя для кэша можно задействовать и файловую систему, и ту же БД (отдельную таблицу для кэша), сочетание разных видов.

Отправлено: 10:36, 03-01-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Mihahail

Новый участник


Сообщения: 47
Благодарности: 1

Профиль | Отправить PM | Цитировать


Sham, поясните, что значит надежнее?
Сброс всего старого контента на файловую систему не даст прироста производительности бд?
Я ведь хотел как:
Самые последние и читаемые страницы хранить в озу, менее читаемые - в бд, а старые(перекочевавшие у пользователя в закладки) - как файлы на диске.

То, что хранение актуальных записей в озу даст прирост - это очевидно.
Но есть ли толк в хранении старых записей на диске?
Просто если это даст хоть немного - уже хорошо.

Отправлено: 17:36, 03-01-2012 | #3


Deadooshka


Сообщения: 2517
Благодарности: 692

Профиль | Отправить PM | Цитировать


БД надежнее в смысле оперативности обслуживания, бекапов, восстановления данных, репликаций и т.д.
Цитата Mihahail:
а старые(перекочевавшие у пользователя в закладки) - как файлы на диске. »
Имхо тут не может быть однозначного решения. Если приоритет - размер БД, то да - лучше очищать таблицу. Но при этом, если потребуется поиск, то придется индексировать и помещать в таблицу поиска.
В принципе, для отдачи всего контента можно организовать файловый кэш в сжатом виде, независимо от актуальности. Разделять контент я бы не стал, это неудобно.
Не считаю, что оптимизированные запросы на выборку 1 строки по unique/primary-индексу сильно нагружают БД.
В общем случае можно варьировать выдачу БД/файл в зависимости от показателей загруженности. Например, по крону снимать цифры загруженности БД, системы, в зависимости от которых рулить выдачей.

Отправлено: 18:19, 03-01-2012 | #4


Аватара для Mihahail

Новый участник


Сообщения: 47
Благодарности: 1

Профиль | Отправить PM | Цитировать


Ох, вот о поиске как-то не подумал, нужно будет не забыть..

Просто я хочу добиться того, чтобы нагрузка правильно распределялась между актуальными и неактуальными материалами.

Цитата Sham:
В общем случае можно варьировать выдачу БД/файл в зависимости от показателей загруженности »
Всмысле? Тоесть хранить контент и в базе и в файлах? Но это же расточительство!
Или что-то другое?

Выходит что лучше всё-таки хранить всё в бд и только кэшировать актуальное?

Отправлено: 01:18, 04-01-2012 | #5


Deadooshka


Сообщения: 2517
Благодарности: 692

Профиль | Отправить PM | Цитировать


Цитата Mihahail:
хранить контент и в базе и в файлах? Но это же расточительство! »
Файловый кэш может быть и в сжатом виде. В мемкеш можно класть страницы целиком, код по частям и т.д. как угодно. Кэш можно варьировать для авторизованных и обычных юзеров (для обычных можно целиком страницы кэшировать). Какие запросы и как кэшировать - дело хозяйское.

Отправлено: 09:48, 04-01-2012 | #6


Аватара для Mihahail

Новый участник


Сообщения: 47
Благодарности: 1

Профиль | Отправить PM | Цитировать


Не стал юзать хранение контента как файлов - всё храню в бд.
кэширования хватило)
Решено

Отправлено: 02:40, 09-01-2012 | #7



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] Хранение контента

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Защита контента Dragon7 Вебмастеру 13 15-07-2011 03:40
Магазин по продаже контента (php) dmitryst Вебмастеру 25 18-12-2010 23:24
Yahoo создаст сервис оптимизации контента OSZone News Новости информационных технологий 0 17-11-2010 15:30
Интерфейс - корявый интерфейс просмотра контента Ingolder Microsoft Windows 7 0 17-05-2009 23:46
Уценка контента оператором united Мобильные ОС, смартфоны и планшеты 6 17-10-2008 15:23




 
Переход