200 Мб в день. Стоит ли делать предварительную оптимизацию?

Статус
В этой теме нельзя размещать новые ответы.

xintrea

Новичок
Здравствуйте!


Пилю тут потихоньку свой проект. База пока MySQL, таблицы MyISAM, запросы идут через слой абстракции ActiveRecord в Codeigniter, так что перейти на что-то более серьезное большого труда не составит.

Так вот, по предварительным расчетам, на среднюю нагрузку, у меня получается, что на сайте в базу будет добавляться около 200 Мб в день. Это значит 6 Гб в месяц, то есть 72 Гб в год.

Добавляема информация - это XML описания разных объектов. В XML коде много повторяющихся тегов, так что XML описание объекта ужимается ZIP алгоритмом более чем в 10 раз.

Вот и думаю, стоит ли менять формат хранения описания объектов с чистого XML (поле типа TEXT без ограничения длинны) на упакованный XML через ZIP (поле типа BLOB)? Если и начинать менять, то стоит ли перейти с XML на JSON, он вроде более компактный, и его уже зипать?

Что лучше - хранить неупакованные данные в 10 раз больше или зипать/раззипать при чтении-записи, но объем в базе будет в 10 раз меньше?

Обращение к этим данным идет только в ответ на действия пользователей, одни данные пользователь просматривает примерно 2-3 минуты. Ожидаемое активное кол-во пользователей - 3-5 тыщщ человек в день.
 

Redjik

Джедай-мастер
Ragazzo
TDD interested
На сайте с: 09.08.2010
Сообщения: 777

ДЖЕКПОТ!

xintrea
Бритва Оккама - нет не стоит, когда дорастешь до 3,5 тыщи - тогда стоит взять сервак помощнее, чтобы держал и оптимизировать по-тихоньку.
 

Фанат

oncle terrible
Команда форума
Для меня главным будет вопрос, зачем вообще хранить в базе XML файлы
 

Redjik

Джедай-мастер
Наверное мудрит с xslt что-то, иначе совсем неадекватно получается.
 

xintrea

Новичок
Для меня главным будет вопрос, зачем вообще хранить в базе XML файлы
XML - универсальный формат, на нем провел всю предварительную разработку, его читает и обрабатывает самописный C++ демон. И я не парюсь, передавая XML между C++, PHP и JS, ибо знаю что везде есть отлаженные инструменты для его обработки. Без унификации никуда.
 

xintrea

Новичок
Наверное мудрит с xslt что-то, иначе совсем неадекватно получается.
Просто храню структурированные данные. XSLT не использую.


Иван Redjik Матвеев написал(а):
нет не стоит, когда дорастешь до 3,5 тыщи - тогда стоит взять сервак помощнее, чтобы держал и оптимизировать по-тихоньку
Ну в общем, видимо я все-таки добавлю ZIP упаковку, там всего-то пару строк в модели поправить. А структуру XML пока трогать никак не буду, пусть просто упакованным хранится.
 

Adelf

Administrator
Команда форума
Иван Redjik Матвеев
меня вот всегда удивляло почему люди когда хотят написать Hello, world на php пишут именно так. Hello, world на php выглядит так:
PHP:
Hello, world!
Автору: раззиповывать каждый раз - не оч хорошо. Но все зависит от ситуации. Сделай сначала. Потом смоделируй нагрузку. И дальше смотри. Никто ща тут тебе так сразу не скажет как именно в твоей ситуации будет лучше.

З.Ы. Удивляют меня люди. Проект. Нормальная посещаемость планируется. а потратиться на нормальный сервак - не хотят.
 

Фанат

oncle terrible
Команда форума
XML - универсальный формат, на нем провел всю предварительную разработку, его читает и обрабатывает самописный C++ демон. И я не парюсь, передавая XML между C++, PHP и JS, ибо знаю что везде есть отлаженные инструменты для его обработки. Без унификации никуда.
Я не увидел ответа на вопрос, зачем эти файлы "универсального формата" хранить в БД
 

xintrea

Новичок
500!!! в сутки?!?! Научи!
Разуй глаза.

На виртуальном VDS с производительностью P-160 МГц и 64 Мб ОЗУ сервер справился с 5000 просмотрами в сутки (основной наплыв вечером). Так же было зафиксировано максимальное одномоментное нахождение 48 человек.
 

xintrea

Новичок
Автору: раззиповывать каждый раз - не оч хорошо. Но все зависит от ситуации. Сделай сначала. Потом смоделируй нагрузку. И дальше смотри. Никто ща тут тебе так сразу не скажет как именно в твоей ситуации будет лучше.
Да, тут вы правы, видимо нужно сделать в том виде в котором считаешь нужным, затем по факту доработать.


З.Ы. Удивляют меня люди. Проект. Нормальная посещаемость планируется. а потратиться на нормальный сервак - не хотят.
Я с этого проекта еще ни копейки не заработал, только трачу силы и время, и в ресурсах ограничен. Так что видимо буду пробовать на облачном хостинге стартануть, без нагрузки они стоят так же как средненький VDS.
 

xintrea

Новичок
Я не увидел ответа на вопрос, зачем эти файлы "универсального формата" хранить в БД
А где их еще хранить?

Предлагаете городить хранение на файлах с привязкой к базе? Так у меня 4-5 тыщ файлов в день получится (они и занимают 200 Мб). За год получим полтора миллиона файлов. Не каждая файловая система справится с таким количеством файлов в одном каталоге. Посему придется еще городить разбиение на подкаталоги. Еще придется городить скрипты для контроля связанности база-файлы. В общем, велосипед большой получится.

Если попробовать NoSQL, то я вообще с таким никогда не работал, и по-нормальному освоить еще одну неведомую технологию это будет как-то слишком, итак пришлось выучивать PHP, CodeIgniter, JavaScript, jQuery, верстку HTML и CSS (больше всего времени кстати отнимает), SQL, писать демон на C++, разбираться с CMake, настраивать Apache и NGinx, виртуальные хосты на них, ватчдоги, Crond, отправка email, оповещения по XMMP... Сейчас только треть проекта готовности, и еще значит NoSQL осталось выучить. Да ну втопку, я лучше на том что знаю буду работать, тогда хоть результат работы реально увидеть можно.
 

Фанат

oncle terrible
Команда форума
придется еще городить разбиение на подкаталоги.
ОМГ, если такая тривиальная задача описывается словом "городить", то говорить здесь не о чем.
 

xintrea

Новичок
ОМГ, если такая тривиальная задача описывается словом "городить", то говорить здесь не о чем.
Ну видимо вы с файловыми кешами никогда не работали, и не представляете всех тонкостей, которые возникают в ходе разработки.
 

xintrea

Новичок
А, блин, это же фанат. Надо было сразу обратить внимание чтоб время на ответы не тратить.
 

Redjik

Джедай-мастер
xintrea
xintrea
Новичок
На сайте с: 03.03.2006

ты 6 лет учил
PHP, CodeIgniter, JavaScript, jQuery, верстку HTML и CSS (больше всего времени кстати отнимает), SQL, писать демон на C++, разбираться с CMake, настраивать Apache и NGinx, виртуальные хосты на них, ватчдоги, Crond, отправка email, оповещения по XMMP
O_O

ЗЫ. у меня ЧСВ подпрыгнуло сразу over 9000
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху