| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Базы данных, выбор |
| Автор: ReactOS 8.4.2008, 09:46 |
| Приветствую всех! Существует ряд Баз Данных: Adabas D, dBase, Empress, FilePro, Informix, InterBase, mSQL, MSSQL, MySQL, Oracle, PostgreSQL, Solid, Sybase, Velocis, ODBC, Unix dbm и другие... Мои вопросы: 1). Какая из всех выперечисленных является самой быстрой? Вроде насколько помню MySQL является самой быстрой, но это я не точно знаю, так ли это? 2). Из-за чего мне следует выбирать ту или иную базу данных. У каждой базы данных есть свои особенности, но в Вики :( вычитала, что самая стабильная это PostgreSQL, мол содержит меньше всего ошибок при компиляции, да и по скорости той же не уступает MySQL. 3). Есть ли смысл вообще выбирать базу данных? Может, самый лучший вариант, это качественно настроена база данных... И мол, если руки не из тех мест растут, то какая разница какая бд нужна? А если, вы обладаете достаточно приличными знаниями MySQL, то это уже вполне достаточно, и смотреть на др. бд не нужно. Прошу ответить на мои вопросы, спасибо. |
| Автор: bars80080 8.4.2008, 10:19 |
| по-моему, выбор БД определяется исключительно хостером, а вы, выбрав хостинг, уже сталкиваетесь с тем что есть |
| Автор: bars80080 8.4.2008, 10:32 |
| мифическая ситуация во всяком случае для меня подо мной сайтов пять и везде я по факту получаю выбранный какими-то архинеизвестными причинами от начальства и хост и соответственно БД |
| Автор: awers 8.4.2008, 10:32 |
| Не скоростью единой живет база данных. И постгрии не самая стабильная. Мой ответ Oracle 10g |
| Автор: bars80080 8.4.2008, 10:34 |
| да и локальный хостинг приходится также ориетировать на то, что будет дальше. если IIS и Apache ещё можно жонглировать, то БД определяется жёстко |
| Автор: ReactOS 8.4.2008, 10:36 | ||
1). так чем же еще, кроме скорости? 2). значит Оркал стабильнее по вашим словам среди всех остальных, вроде Оракл известен так же, что выжирает очень много оперативки по сравнению с др. бд, но правда если стабильнее, чем другие бд, то цель оправдывает средства? 3). не уж что Firebird нестабильная бд? Добавлено через 3 минуты и 50 секунд ну IIS - это для ASPшников, сам по себе Apache более быстрый сервер чем, IIS связка IIS+ASP(.NET)+MSSQL проигрывает по скорости Apache/nginx+PHP+MySQL(насчет других не знаю), среди первых только ASP быстрее, т.к. он компилятор в отличии от PHP сориентирован, сейчас возник вопрос по БД |
| Автор: Grig 8.4.2008, 10:40 |
| еще вопрос в том, какой язык вы используете. Если PHP, то по моему лучше юзать MySQL, если производственная необходимость не жмет. прост, быстр, функционален =) |
| Автор: ReactOS 8.4.2008, 10:45 | ||
да, проблема в том, что в университете у нас есть прога ( сайт, как-то не поворчивается сказать |
| Автор: zibox86 8.4.2008, 10:48 | ||
Тогда уже по моему железо по круче в пихнуть на локальный сервер! |
| Автор: Grig 8.4.2008, 10:51 |
| ну и чем MySQL-то не устраивает? Выдерживает нагрузки посерьезней. Можно и нужно лучше сосредоточить внимание на производительности скриптов, если возникают какие-то проблемы |
| Автор: ReactOS 8.4.2008, 10:51 |
да вы что, удавятся, если новую тачку купят поэтому все спихивают на оптимизацию и на правильный выбор сервера+бд Добавлено через 1 минуту и 58 секунд меня всем, но не я ректор универа поэтому и начинают кидать в сторону выбора бд |
| Автор: bars80080 8.4.2008, 10:55 |
| а бабасов на разработку нового ПО им хватит? или надеются что студенты сумеют сгенерировать новые идеальные по эффективности скрипты? |
| Автор: zibox86 8.4.2008, 10:57 |
Ну тогда как сказал Grig, пишите скрипты! Лучше всего на C++! |
| Автор: ReactOS 8.4.2008, 10:57 | ||||||
невнимательно читаете
надеются, и студенты, которые это могут есть правда, все хотят денег
ну начинается, сейчас еще про дельфи вспомним, еще Ruby возьмем система уже на PHP написана, и уж точно никто не собирается переходить на др. языки, деньги экономят, и ссылают на оптимизацию что же тут поделать хочешь не хочешь, а про выбор бд уже начинаешь думать |
| Автор: zibox86 8.4.2008, 11:04 |
MySQL и оптимизация - выход из положения Добавлено через 4 минуты и 30 секунд А еще вариант AJAX, но много на этом не с экономишь! Выводите результаты запроса JavaScript, а запросы пусть PHP также делает! |
| Автор: skyboy 8.4.2008, 11:42 | ||
| Rexona, скорость - вопрос конкретной структуры. по возможностям(однако, замечу, что PostgreSQL мне знакомо много меньше, чем MySQL) MySQL 5 и PostgreSQL довольно близки: представления, триггеры, ХП, UDF... Впрочем, скорее всего, без этих дополнительных возможностей и обойдетесь. по скорости сравнивать бесполезно: обе СУБД достаточно интенсивно развиваются, чтоб вопрос утечек памяти или непонятных зависаний не беспокоил. однако, отмечу, что сообщество MySQL в силу большей распространенности на хостингах, много массивнее, потому ответ на вопрос получить гораздо вероятнее. И гораздо быстрее разве что бесплатный вариант Express Edition... Добавлено через 2 минуты и 7 секунд
200 человек в день и - тормоза? я бы в первую очередь убедился, что тормоза из-за БД. проверил бы клиентский(относительно БД "клиентский") код. Возможно(вполне вероятно), проблемы из-за неадекватных структур и некорректных алгоритмов. По крайней мере, не могу представить себе действия на базе "зарплаты, личные дела и т.д.", чтоб система на 200 запросов тормозила. 0_о |
| Автор: ReactOS 8.4.2008, 12:13 | ||||
да уж... :( самой грустно
да нет, извлечь, да обновить данные из БД - достаточно просто - ни каких накруток нет... |
| Автор: Feldmarschall 8.4.2008, 12:26 |
| Rexona, ответ на вопрос содержится в п.3 Разумеется, все дело не в выборе БД и уж тем более не в том, какая быстрее. А в том, как используется конкретная база данных. Поэтому надо спрашивать не какая лучше из этого красивого спика, а как оптимизировать работу с нынешней. |
| Автор: Nigel 8.4.2008, 13:06 |
| Вообще, странная политика у университета. Хотят хороший сервер, а денег не выделяют. Имхо, для вашей задачи подойдет любая реляционная СУБД и не будет никаких тормозов(если комп у вас еле дышит, то поставьте нормальное железо сначала). Согласен со skyboy по поводу MySQL. Я бы его выбрал. |
| Автор: Fortop 8.4.2008, 13:16 |
Для начала определитесь с нагрузкой на текущую систему. Т.е. что является узким местом. Вставки, выборки, количество пользователей и т.д. После этого можно будет говорить об оптимизации. |
| Автор: flashaa 8.4.2008, 13:18 |
| Если просто посмотреть по миру... Не помню где видел неплохой обзор реализации десятки посещаемых и крупных сайтов. 8 из них были сделаны на PHP+MySQL. Мне кажется, здесь не то оптимизируете. Либо оптимизировать данную ситуацию вообще невозможно ( при поставленных требованиях к деньгам ). |
| Автор: ReactOS 8.4.2008, 14:21 | ||
странная, а что же делать я бы выделила на новую тачку денег |
| Автор: awers 8.4.2008, 14:59 |
| Rexona, к примеру вполне хватает Oracle с его халявными 2гб. под базу. Я использую окракл потому что: огромные нагрузки, организовал на нем бизнес логику. Тем самым я добился: неважно на чем написано приложение, Pacal, php, питон или вообще под дос. Клиентское приложение не несет на себе никакой нагрузки, за счет чего можно делать API интерфейс работы с системой в оракле открытым и каждый желающий может написать свою клиентскую прикладу. А для маленьких простеньких решений неважно MySQL или постгри, хотя я отдал бы свое предпочтение MySQL |
| Автор: ReactOS 8.4.2008, 15:10 |
| я читала, что вообще рекомендуют не использовать MSSQL для php, что MSSQL сама по себе слабее, чем MySQL, это так? кстати, а никогда не занималась ASP. Вы не знаете, там так же легко можно коннектиться к любой бд и с ней работать или все-таки ASP не с каждой бд работает? |
| Автор: flashaa 8.4.2008, 15:11 | ||
Какие такие непомерные нагрузки тянет оракл и не тянет mysql ? |
| Автор: Fortop 8.4.2008, 15:51 | ||
не так.
Можно коннектиться практически к любой БД. Но я настоятельно рекомендую закончить метания и занятся профайлингом текущей системы. После чего уже можно будет анализировать в чем проблема медленности системы. Есть шанс отличный от нуля, что проблемы вообще не с БД или приложением, а с сетью. |
| Автор: awers 8.4.2008, 15:54 |
| flashaa, ты это .... пошутил или как? )) 4 млн. записей в день. MySQL за 2 дня умерает Добавлено через 14 минут и 13 секунд Rexona, Так а зачем БД то вообще? про IIS забудь, нет такого слова ) |
| Автор: ReactOS 8.4.2008, 16:22 | ||
вообще непонятно к чему такие фразы... :( |
| Автор: bars80080 8.4.2008, 16:30 |
| почему? у меня где-то стоит |
| Автор: mishaSL 8.4.2008, 16:33 |
| Rexona, вам уже был дан ответ, что скорее всего проблема не в БД. Конечно лучше еще уточнить сколько запросов к БД идет в часы пик, или хотябы в сутки. И какой общий объем данных. Но я также склоняюсь к тому, что MySQL вам будет более чем достаточно. |
| Автор: ReactOS 8.4.2008, 16:38 |
да был, спасибо за ответ! интересно только, почему настойчиво советуют забыть IIS и стало интересно про Oracle, awers пишет, что супернагрузки только эта бд способна выдержить, не уж что только Oracle на это способен? |
| Автор: mishaSL 8.4.2008, 16:46 | ||||
Я думаю самый лучший способ узнать - это попробовать. Вот статья со сравнением СУБД: http://www.devx.com/dbzone/Article/20743 Так же вот цитата с http://www.opennet.ru/opennews/art.shtml?num=3717:
Добавлено через 3 минуты и 40 секунд А также: http://program.rin.ru/razdel/html/490.html#1 http://monstera.man.poznan.pl/wiki/index.php/Mysql_vs_postgres |
| Автор: flashaa 8.4.2008, 17:35 |
| awers, я не искушен в таких цифрах. 4 млн операций insert/update в сутки ? А подключений много? |
| Автор: ReactOS 8.4.2008, 17:40 |
еще select не хватает... а то как-то не полная картина получается, select/insert/update - самые распространенные запросы |
| Автор: awers 8.4.2008, 17:54 | ||
подразумевает insert конечно, а это может быть что то еще? |
| Автор: flashaa 8.4.2008, 21:24 |
| awers, я думал, update вообще по сути сюда тоже можно отнести, думаю она даже сложнее, т.к. инсерт - тупо вставка, а апдейт - вставка с предварительным затиранием ещё и с условием where - ну это мое субъективное мнение. Вообще сначала хотел возразить, т.к. клиенты хостенгов сидят на mysql, а сервер у них один, а этих клиентов может быть до десятков тысяч на одном сервере - так что в принципе можно получить примерно ваши 4 млн инсертов на 1 mysql-сервер. Но поскольку точных цифр не имею, спорить не буду. |
| Автор: awers 9.4.2008, 01:52 |
| flashaa, ты по дисковому пространству и отводимым ресурсам посчитай... выйдет не более 100-150 юзеров на сервер. ну а дальше тоже банальная математика... те кому "за" - всеравно приходится либо выделенный сервер либо vds |
| Автор: Feldmarschall 9.4.2008, 08:48 |
| flashaa, у тебя совершенно дикие представления о запросах. Да и у остальных участников дискуссии - тоже, в общем-то. А уж насколько вопрос о запросах относится к первоначальному - это и вовсе туши свет. "предварительное затирание" - не такая страшная штука, как кажется: позиционирование в файле не занимает много времени. Другое дело, что "тупо вставка" чаще всего приводит к... перестроению ВСЕХ ИНДЕКСОВ. Попробуй представить себе нагрузку, ага. Поэтому система, которая получает много инсертов, делается совсем по-другому, не так как та, в которой инсертов мало. Это если говорить абстрактно о запросах. Если говорить о конкретном примере, то не очень понятно, опять же. Куда деваются эти инсерты, если база ограничена двумя гигами. То есть, дело темное, и сильно ориентироваться на эти рассказы не нужно. Опять же, все дело может быть не в разниче между базами, а в разнице между администраторами баз. У одного мускуль помирает на 4 лимонах, а у другого - вполне себе здравствует. Да и сам автор заявляет, что юзает оракл из-за логики. Сравнивать СУББД сидя на форуме, и рассуждая о студенческих хоумпейджах - на редкость дурацкое занятие. Те, кто действительно могут квалифицированно отличить, во-первых, не сидят на форумах. А во-вторых - занимаются делом, а не сравнениями. И прекрасно у них все работает. Спайлог, википедия, лайвджорнал прекрансо работают на мускуле. Только не надо понимать мои слова так, будто мускуль - это круче всего. Надо понимать мои слова так, что главное - не инструмент, а голова, которая его держит. |
| Автор: krundetz 9.4.2008, 10:04 | ||||||
Потому что вы в форуме посвященном PHP а он на IIS работает в разы медленнее. Хотите работать с IIS посмотрите в сторону ASP.NET.
Абсолютно согласен. Даже самая быстрая база будет ползать из-за кривизны рук проектировщика системы и програмистов если у них руки не тем концом вставлены или они вообще нагами работают.
Имеет. Только исходить надо не из того какая база данных самая лучшая, а из того над каким проектом вы работаете. Если заказчику необходим сайт у которого посещаемость будет 1000 человек в день какой смысл использовать там дорогой Oracle? |
| Автор: flashaa 9.4.2008, 13:12 | ||
По какой логике получилось 100-150, ведь вот это я не с потолка взял. Именно десятки тысяч клиентов на одном сервере вполне могут располагаться (сталкивался с таким). На одном физическом сервере 10-20 тыс клиентов, они юзают сервер mysql, который расположен на этом же сервере. |