Высоко нагруженный проект. На чем делать?
Высоко нагруженный проект. На чем делать?
Магазин автозапчастей. 20млн. запчастей, 69млн кроссов (взимозаменямость запчастей), 400 марок авто, более 56тыс моделей, таблица применямости к марка/моделям, несколько цен для каждой запчасти, обновление позиций по веб-сервисам от поставщиков и пр.
Признаюсь честно, с высоко-нагруженными проектами не работал. А здесь, похоже, именно это. Как думаете, имеет смысл делать на MySQL, потянет? Люди пишут что для таких вещей лучше использовать Oracle. И стоит ли использовать Yii и php вообще? Опять таки почитал - говорят что лучше юзать asp net, или coldFusion?
Просто проект мне нравиться, по сути - просто большой каталог, но нравиться. И я в сомнениях, ибо пишут что лучше использовать другие платформы, а если реально целесообразней делать не на Yii, то лучше отказаться, ибо нравиться мне он и лучше я потрачу время на его более подробное изучение, чем пытаться что-то сделать на других платформах.
Что думаете? Заранее спасибо.
Признаюсь честно, с высоко-нагруженными проектами не работал. А здесь, похоже, именно это. Как думаете, имеет смысл делать на MySQL, потянет? Люди пишут что для таких вещей лучше использовать Oracle. И стоит ли использовать Yii и php вообще? Опять таки почитал - говорят что лучше юзать asp net, или coldFusion?
Просто проект мне нравиться, по сути - просто большой каталог, но нравиться. И я в сомнениях, ибо пишут что лучше использовать другие платформы, а если реально целесообразней делать не на Yii, то лучше отказаться, ибо нравиться мне он и лучше я потрачу время на его более подробное изучение, чем пытаться что-то сделать на других платформах.
Что думаете? Заранее спасибо.
Re: Высоко нагруженный проект. На чем делать?
Самое главное - посещаемость. 69 млн - не такая большая цифра.
Re: Высоко нагруженный проект. На чем делать?
можете попробовать использовать nosql хранилища. например mongodb или redis. mongodb вроде даже адаптирован под yii уже в виде расширения. насколько это будет быстро работать не ручаюсь )
RTFM !
Re: Высоко нагруженный проект. На чем делать?
Не, релиационные таблицы - для этого самое то. Держу сейчас в руках книжку "MySQL - Оптимизация производительности" - там довольно много способов описанно как что затюнить.because писал(а):можете попробовать использовать nosql хранилища. например mongodb или redis. mongodb вроде даже адаптирован под yii уже в виде расширения. насколько это будет быстро работать не ручаюсь )
Интересно, что в ней есть глава "Совместное использование MySQL и Sphinx", и говориться что Sphinx гораздо круче MySQL на полнотекстовых поисках + имеет много возможностей по крутой оптимизации WHERE, ORDER, GROUP. Надо почитать поподробнее ))
-
- Сообщения: 1428
- Зарегистрирован: 2009.08.20, 22:54
- Откуда: Молдова, Бельцы
- Контактная информация:
Re: Высоко нагруженный проект. На чем делать?
на компьютере
Выше все верно написали, yii, кеширование, mysql + sphinx и все будет ок.
Выше все верно написали, yii, кеширование, mysql + sphinx и все будет ок.
-
- Сообщения: 47
- Зарегистрирован: 2011.03.02, 19:16
Re: Высоко нагруженный проект. На чем делать?
Если напрягает обращение к базе то храни основные данные в памяти, тогда всё будет ок. Все высоконагруженные проекты именно так и живут, кстатии на PHP большинство их и написано. Главные претензии к PHP в том что сложно управлять большими проектами, и модифицировать код. Но фрэйм ворк в плане повышения скорости работы и упращения модификации приложения, тебе как раз очень поможет.
Re: Высоко нагруженный проект. На чем делать?
Самое главное - правильно организовать индексы и кеширование. Придётся забыть про AR и пользоваться DAO напрямую. И сразу организовывать полный дебаг запросов к базе для выявления узких мест. Какие сроки даны на реализацию проекта?
Конференция: yii@conference.jabber.ru
Re: Высоко нагруженный проект. На чем делать?
1. А это что большая база
2. Главное посещаемость
3. А чем плох MySQL и хорош Oracle, 10 лет назад да, 5 лет назад сомнительно, сейчас - ну есть у Oracle несколько фенечек, но это уже из области тонкого тюнинга для очень небольшого количества очень специфичных приложений, в любом случае у вас не то приложение, на котором вы заметите разницу.
4. А чем плох PHP, на сколько я понимаю другая альтернатива .NET - полная помойка, хотите испортить себя как программиста, тогда .NET ваш выбор
Ну и так до кучи, в мире нет ни одного высоконагруженного приложения работающего не на PHP + MySQL. Ваши альтернативы .NET и Oracle, сюда можно еще причислить несколько не упомянутых технологий - это все корпоративный сектор, софт который продается не потому что он хорош, а потому что большие дяди из одной корпорации за ланчем продали другим большим дядям из другой корпорации отстягнув откат, при этом все они оперировали общими бизнес-терминами графиками кривых и не понимали ничего в программировании, сексом то не они будут заниматься. В общем всем им стало хорошо, одни получили прибыль, другие освоили бюджет.
2. Главное посещаемость
3. А чем плох MySQL и хорош Oracle, 10 лет назад да, 5 лет назад сомнительно, сейчас - ну есть у Oracle несколько фенечек, но это уже из области тонкого тюнинга для очень небольшого количества очень специфичных приложений, в любом случае у вас не то приложение, на котором вы заметите разницу.
4. А чем плох PHP, на сколько я понимаю другая альтернатива .NET - полная помойка, хотите испортить себя как программиста, тогда .NET ваш выбор
Ну и так до кучи, в мире нет ни одного высоконагруженного приложения работающего не на PHP + MySQL. Ваши альтернативы .NET и Oracle, сюда можно еще причислить несколько не упомянутых технологий - это все корпоративный сектор, софт который продается не потому что он хорош, а потому что большие дяди из одной корпорации за ланчем продали другим большим дядям из другой корпорации отстягнув откат, при этом все они оперировали общими бизнес-терминами графиками кривых и не понимали ничего в программировании, сексом то не они будут заниматься. В общем всем им стало хорошо, одни получили прибыль, другие освоили бюджет.
- timlar
- Сообщения: 1382
- Зарегистрирован: 2009.09.19, 17:49
- Откуда: Украина, Днепропетровск
- Контактная информация:
Re: Высоко нагруженный проект. На чем делать?
А как на счет того же Твиттера, который написан на Руби? На Питоне тоже пишут высоконагруженные проекты. Не стоит забывать об Erlang'е и Node.js. Писать можно практически на чем угодно, главное знать как правильно это делать.TM123 писал(а):Ну и так до кучи, в мире нет ни одного высоконагруженного приложения работающего не на PHP + MySQL.
Twitter: @timlar_ua
Re: Высоко нагруженный проект. На чем делать?
Хорошо я имел в виду .NET и Oracle, хотя если смотреть на остальные варианты и сравнивать их количество с PHP+MySQL проектами, то их долю можно принять равной 0. Это тоже самое что в начале 2000-х постоянно проскальзывали новости типа продажи LINUX выросли на 300%, а потом смотришь цифры, продавали 30 копий, стали продавать 90, относительный рост конечно высок, а абсолютный не стоит и упоминать.
Согласен что писать можно на чем угодно, вопрос только в затратах на разработку и стоимости владения, у меня на глазах масса примеров в том числе и в которых я участвовал лично. Были проекты (финансовые системы) написанные на PHP мной лично, база данных весила 2-3GB, после того как умное начальство наслушавшись и начитавшись best practix решало перевести их на .NET, на в 20 раз более мощных серверах они не могли работать с той же скоростью что и на PHP и это на базе 50-100MB. Функционал у проектов был полностью одинаковым, даже база данных была одна и та же по структуре, просто данных в таблицах меньше. После некоторого тюнинга кода, они почти приближались к своей PHP версии, но только на базе 50-100MB, при базе 500MB просто опять падали в аут и никакими силами кроме как увеличением железа уже не поднимались и это на фоне того, что .NET разработчики дороже PHP и толковых найти на много труднее, быстрый старт и очень долгое набирание опыта.
Согласен что писать можно на чем угодно, вопрос только в затратах на разработку и стоимости владения, у меня на глазах масса примеров в том числе и в которых я участвовал лично. Были проекты (финансовые системы) написанные на PHP мной лично, база данных весила 2-3GB, после того как умное начальство наслушавшись и начитавшись best practix решало перевести их на .NET, на в 20 раз более мощных серверах они не могли работать с той же скоростью что и на PHP и это на базе 50-100MB. Функционал у проектов был полностью одинаковым, даже база данных была одна и та же по структуре, просто данных в таблицах меньше. После некоторого тюнинга кода, они почти приближались к своей PHP версии, но только на базе 50-100MB, при базе 500MB просто опять падали в аут и никакими силами кроме как увеличением железа уже не поднимались и это на фоне того, что .NET разработчики дороже PHP и толковых найти на много труднее, быстрый старт и очень долгое набирание опыта.
Re: Высоко нагруженный проект. На чем делать?
Может все же акции Red Hat, а не копий ?TM123 писал(а): ...
Это тоже самое что в начале 2000-х постоянно проскальзывали новости типа продажи LINUX выросли на 300%, а потом смотришь цифры, продавали 30 копий, стали продавать 90, относительный рост конечно высок, а абсолютный не стоит и упоминать.
...
- timlar
- Сообщения: 1382
- Зарегистрирован: 2009.09.19, 17:49
- Откуда: Украина, Днепропетровск
- Контактная информация:
Re: Высоко нагруженный проект. На чем делать?
Ну это не значит, что "в мире нет ни одного высоконагруженного приложения работающего не на PHP + MySQL" Я об этом...TM123 писал(а):Хорошо я имел в виду .NET и Oracle, хотя если смотреть на остальные варианты и сравнивать их количество с PHP+MySQL проектами, то их долю можно принять равной 0.
Twitter: @timlar_ua
-
- Сообщения: 27
- Зарегистрирован: 2010.12.17, 11:33
- Контактная информация:
Re: Высоко нагруженный проект. На чем делать?
Я использовал бы чистый PHP, без фреймворкоВ + MySQL или PostgreeSQL + кеширование всего что только можно. Cкажу даже ужасную вещь... даже ООП и ORM бы не использовал бы...
- Svyatov
- Сообщения: 459
- Зарегистрирован: 2010.08.12, 14:50
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Высоко нагруженный проект. На чем делать?
И писал бы все это год, а потом бы никто не смог это поддерживать. Отличный советtroublegum писал(а):Я использовал бы чистый PHP, без фреймворкоВ + MySQL или PostgreeSQL + кеширование всего что только можно. Cкажу даже ужасную вещь... даже ООП и ORM бы не использовал бы...
Кэширование не спасает от всех бед. А что если основная нагрузка - это запись в базу? Тогда что кэшировать?
-
- Сообщения: 27
- Зарегистрирован: 2010.12.17, 11:33
- Контактная информация:
Re: Высоко нагруженный проект. На чем делать?
Ну а как раньше люди писали большие проекты на PHP 4!? В пхп4 не было толковой поддержки ООП. Например: такой замечательный форум был PhpBB (старый) он был полностью процедурный, да возмите Вордпресс там большинство кода процедурного, и ничего живет и поддерживается.Svyatov писал(а):И писал бы все это год, а потом бы никто не смог это поддерживать. Отличный советtroublegum писал(а):Я использовал бы чистый PHP, без фреймворкоВ + MySQL или PostgreeSQL + кеширование всего что только можно. Cкажу даже ужасную вещь... даже ООП и ORM бы не использовал бы...
Кэширование не спасает от всех бед. А что если основная нагрузка - это запись в базу? Тогда что кэшировать?
Судя по задаче, на сайте будет преобладать чтение, а не запись.
Re: Высоко нагруженный проект. На чем делать?
А еще раньше люди сырое мясо ели и в шкурах ходили. Основное время генерации страницы - это чтение/запись в базу, так что фреймворк можно использовать спокойно, не такой уж он и тяжелый.troublegum писал(а):Ну а как раньше люди писали большие проекты на PHP 4!? В пхп4 не было толковой поддержки ООП. Например: такой замечательный форум был PhpBB (старый) он был полностью процедурный, да возмите Вордпресс там большинство кода процедурного, и ничего живет и поддерживается.Svyatov писал(а):И писал бы все это год, а потом бы никто не смог это поддерживать. Отличный советtroublegum писал(а):Я использовал бы чистый PHP, без фреймворкоВ + MySQL или PostgreeSQL + кеширование всего что только можно. Cкажу даже ужасную вещь... даже ООП и ORM бы не использовал бы...
Кэширование не спасает от всех бед. А что если основная нагрузка - это запись в базу? Тогда что кэшировать?
Судя по задаче, на сайте будет преобладать чтение, а не запись.
-
- Сообщения: 1428
- Зарегистрирован: 2009.08.20, 22:54
- Откуда: Молдова, Бельцы
- Контактная информация:
Re: Высоко нагруженный проект. На чем делать?
Имхо, на чистом пхп очень сложно добиться той масштабируемости которую может дать вам фреймворк
Re: Высоко нагруженный проект. На чем делать?
Вопрос на чём делать довольно спорный, если хорошо знаете пхп, то проще сделать на голом пхп + скажем, постгре, что б в базу не упереться. Если до этого 3-5 лет не работали на дотнете то браться за асп не советую - больше времени уйдёт на борьбу с асп, т.к. сама по себе платформа весьма кривая.
Юзать носкуль в качестве базы в вашем случае не советую, а в оракле не вижу смысла. Оракл если по честному используют у нас не потому что шибко удобно, а потому что шибко круто, продажи в ит-секторе вообще мало коррелируют с качеством продуктов.
А относительно фреймворка (любого) весьма спорная тема, сомнительно что возможность его масштабируемости превысит возможности самого пхп. И никакой активрекорд не обгонит по скорости составленные руками запросы (если, конечно вы хорошо знаете скуль).
Я бы, например, использовал жаву и какой-нибудь лайфрей, но опять таки я работаю на жаве уже несколько лет.
К тому же по указанным вами данным проект не столь высоко нагруженный.
Юзать носкуль в качестве базы в вашем случае не советую, а в оракле не вижу смысла. Оракл если по честному используют у нас не потому что шибко удобно, а потому что шибко круто, продажи в ит-секторе вообще мало коррелируют с качеством продуктов.
А относительно фреймворка (любого) весьма спорная тема, сомнительно что возможность его масштабируемости превысит возможности самого пхп. И никакой активрекорд не обгонит по скорости составленные руками запросы (если, конечно вы хорошо знаете скуль).
Я бы, например, использовал жаву и какой-нибудь лайфрей, но опять таки я работаю на жаве уже несколько лет.
К тому же по указанным вами данным проект не столь высоко нагруженный.
-
- Сообщения: 200
- Зарегистрирован: 2011.03.02, 21:11
Re: Высоко нагруженный проект. На чем делать?
Я бы делал на YII. Если проект такой крутой, то найдутся и деньги на сервера =) За производительностью можно будет всегда гнаться =) YII - один из быстрых ведь считается фремйворков. Тут главное, ИМХО, все верно спроектировать. Вот тут нужно время потратить столько, сколько нужно, пока не будет четкая картинка проекта.
Re: Высоко нагруженный проект. На чем делать?
Я бы вообще с другой стороны зашел. Любой успех зависит изначально зависит от профессионализма и навыков людей. Шедевры можно написать на любом языке. Вопрос в том, хватит ли у тебя/твоей команды навыков чтобы повторить подобное, и сколько это займет времени. Плюс фактор текучки, так как со временем программисты могут уходить неожиданно и в самое неподходящее время. Врочем, как и в любой другое сфере. PHP рынок наиболее гибкий, количество готовых серьезных высоконагруженных решений подтверждение тому. Плюс сказываются суммарные затраты на разработку по сравнению с тем же asp. ИМХО, доступ к качественным людским ресурсам - один из ключевых моментов. Что касается фреймворка, то это очень гибкое решение в плане маштабируемости, когда сложно предсказать, сколько людей будет работать над проектом, и размер кода начинает измеряться мегайбайтами. Конечо, при процедурном программировании в начале код будет и проще, и меньше. Но со возрастающей сложностью и размером кода, чистое процедурное программирование, ведет к тому, что каждый программист становится на вес золота. Слишком много индивидуального кода. Для командной разработки - это критично. Насчет субд: реляционные или нерялиционные, или их комбинация - это, имхо, вопрос индивидуальный, и зависит от задач, которые выполняет проект, а также его структуры.