Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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
по-моему, выбор БД определяется исключительно хостером, а вы, выбрав хостинг, уже сталкиваетесь с тем что есть

Автор: ReactOS 8.4.2008, 10:26
Цитата(bars80080 @  8.4.2008,  10:19 Найти цитируемый пост)
по-моему, выбор БД определяется исключительно хостером, а вы, выбрав хостинг, уже сталкиваетесь с тем что есть

у меня хостера на локалке нет , свободна, как птица smile

потом, хотсер определяет, если только у вас виртуальный хостинг (где по 200 чел. сидит на оной машине)
а если вы выбрали VPS с root, своя рука владыка, ставьте любой сервак (Apache, IIS, nginx), любую БД, любой модуль, будь это PHP или ASP
ну а про дедик, colocation или вообще у себя в офисе - тем более...

Автор: 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
Цитата(awers @  8.4.2008,  10:32 Найти цитируемый пост)
Не скоростью единой живет база данных. И постгрии не самая стабильная. Мой ответ Oracle 10g 

1). так чем же еще, кроме скорости? smile
2). значит Оркал стабильнее по вашим словам среди всех остальных, вроде Оракл известен так же, что выжирает очень много оперативки по сравнению с др. бд, но правда если стабильнее, чем другие бд, то цель оправдывает средства?
3). не уж что Firebird нестабильная бд? smile

Добавлено через 3 минуты и 50 секунд
Цитата(bars80080 @  8.4.2008,  10:34 Найти цитируемый пост)
если IIS и Apache ещё можно жонглировать

ну IIS - это для ASPшников, сам по себе Apache более быстрый сервер чем, IIS
связка IIS+ASP(.NET)+MSSQL проигрывает по скорости Apache/nginx+PHP+MySQL(насчет других не знаю), среди первых только ASP быстрее, т.к. он компилятор в отличии от PHP

Цитата(bars80080 @  8.4.2008,  10:34 Найти цитируемый пост)
да и локальный хостинг приходится также ориетировать на то

сориентирован, сейчас возник вопрос по БД

Автор: Grig 8.4.2008, 10:40
еще вопрос в том, какой язык вы используете. Если PHP, то по моему лучше юзать MySQL, если производственная необходимость не жмет.
прост, быстр, функционален =)

Автор: ReactOS 8.4.2008, 10:45
Цитата(Grig @  8.4.2008,  10:40 Найти цитируемый пост)
еще вопрос в том, какой язык вы используете. Если PHP, то по моему лучше юзать MySQL, если производственная необходимость не жмет.
прост, быстр, функционален =) 

да, проблема в том, что в университете у нас есть прога ( сайт, как-то не поворчивается сказать smile хоть это PHP), написанная на PHP, которая реализует работу на обширной бд (зарплаты, личные дела и т.д.), на ней сидят по 200 человек Онлайн каждый день, то уже вопрос о скорости работы возникает...

Автор: zibox86 8.4.2008, 10:48
Цитата(Rexona @  8.4.2008,  10:45 Найти цитируемый пост)
 которая реализует работу на обширной бд (зарплаты, личные дела и т.д.), на ней сидят по 200 человек Онлайн каждый день, то уже вопрос о скорости работы возникает...

 Тогда уже по моему железо по круче в пихнуть на локальный сервер!

Автор: Grig 8.4.2008, 10:51
ну и чем MySQL-то не устраивает?
Выдерживает нагрузки посерьезней. Можно и нужно лучше сосредоточить внимание на производительности скриптов, если возникают какие-то проблемы

Автор: ReactOS 8.4.2008, 10:51
Цитата(zibox86 @  8.4.2008,  10:48 Найти цитируемый пост)
Тогда уже по моему железо по круче в пихнуть на локальный сервер! 

да вы что, удавятся, если новую тачку купят smile
поэтому все спихивают на оптимизацию и на правильный выбор сервера+бд

Добавлено через 1 минуту и 58 секунд
Цитата(Grig @  8.4.2008,  10:51 Найти цитируемый пост)
ну и чем MySQL-то не устраивает?

меня всем, но не я ректор универа smile
поэтому и начинают кидать в сторону выбора бд smile

Автор: bars80080 8.4.2008, 10:55
а бабасов на разработку нового ПО им хватит?
или надеются что студенты сумеют сгенерировать новые идеальные по эффективности скрипты?

Автор: zibox86 8.4.2008, 10:57
Цитата(Rexona @  8.4.2008,  10:51 Найти цитируемый пост)
да вы что, удавятся, если новую тачку купят 


Ну тогда как сказал 
Grig, пишите скрипты!
Лучше всего на C++!

Автор: ReactOS 8.4.2008, 10:57
Цитата

а бабасов на разработку нового ПО им хватит?

невнимательно читаете smile уже писала, что деньги считают smile

Цитата

или надеются что студенты сумеют сгенерировать новые идеальные по эффективности скрипты? 

надеются, и студенты, которые это могут есть smile
правда, все хотят денег smile

Цитата

Лучше всего на C++! 

ну начинается, сейчас еще про дельфи вспомним, еще Ruby возьмем smile

система уже на PHP написана, и уж точно никто не собирается переходить на др. языки, деньги экономят, и ссылают на оптимизацию smile
что же тут поделать smile
хочешь не хочешь, а про выбор бд уже начинаешь думать

Автор: zibox86 8.4.2008, 11:04
Цитата(Rexona @  8.4.2008,  10:57 Найти цитируемый пост)
хочешь не хочешь, а про выбор бд уже начинаешь думать

MySQL и оптимизация - выход из положения

Добавлено через 4 минуты и 30 секунд
А еще вариант AJAX, но много на этом не с экономишь!
Выводите результаты запроса JavaScript, а запросы пусть PHP также делает!

Автор: skyboy 8.4.2008, 11:42
Rexona, скорость - вопрос конкретной структуры.
по возможностям(однако, замечу, что PostgreSQL мне знакомо много меньше, чем MySQL) MySQL 5 и PostgreSQL довольно близки: представления, триггеры, ХП, UDF... Впрочем, скорее всего, без этих дополнительных возможностей и обойдетесь. 
по скорости сравнивать бесполезно: обе СУБД достаточно интенсивно развиваются, чтоб вопрос утечек памяти или непонятных зависаний не беспокоил.
однако, отмечу, что сообщество MySQL в силу большей распространенности на хостингах, много массивнее, потому ответ на вопрос получить гораздо вероятнее. И гораздо быстрее smile  Пожалуй, это единственное радикальное различие между MySQL и PostgreSQL.
Цитата(awers @  8.4.2008,  09:32 Найти цитируемый пост)
Мой ответ Oracle 10g

Цитата(Rexona @  8.4.2008,  09:57 Найти цитируемый пост)
деньги считают

разве что бесплатный вариант Express Edition...

Добавлено через 2 минуты и 7 секунд
Цитата(Rexona @  8.4.2008,  09:45 Найти цитируемый пост)
которая реализует работу на обширной бд (зарплаты, личные дела и т.д.), на ней сидят по 200 человек Онлайн каждый день, то уже вопрос о скорости работы возникает...

200 человек в день и - тормоза? я бы в первую очередь убедился, что тормоза из-за БД. проверил бы клиентский(относительно БД "клиентский") код. Возможно(вполне вероятно), проблемы из-за неадекватных структур и некорректных алгоритмов. По крайней мере, не могу представить себе действия на базе "зарплаты, личные дела и т.д.", чтоб система на 200 запросов тормозила. 0_о

Автор: ReactOS 8.4.2008, 12:13
Цитата

200 человек в день и - тормоза?

да уж... :( самой грустно



Цитата(skyboy @  8.4.2008,  11:42 Найти цитируемый пост)
 бы в первую очередь убедился, что тормоза из-за БД. проверил бы клиентский(относительно БД "клиентский") код. Возможно(вполне вероятно), проблемы из-за неадекватных структур и некорректных алгоритмов. По крайней мере, не могу представить себе действия на базе "зарплаты, личные дела и т.д.", чтоб система на 200 запросов тормозила. 0_о 

да нет, извлечь, да обновить данные из БД - достаточно просто - ни каких накруток нет...

Автор: Feldmarschall 8.4.2008, 12:26
Rexona, ответ на вопрос содержится в п.3
Разумеется, все дело не в выборе БД и уж тем более не в том, какая быстрее. А в том, как используется конкретная база данных.

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

Автор: Nigel 8.4.2008, 13:06
Вообще, странная политика у университета. Хотят хороший сервер, а денег не выделяют. Имхо, для вашей задачи подойдет любая реляционная СУБД и не будет никаких тормозов(если комп у вас еле дышит, то поставьте нормальное железо сначала). Согласен со skyboy по поводу MySQL. Я бы его выбрал.

Автор: Fortop 8.4.2008, 13:16
Цитата(Rexona @  8.4.2008,  10:57 Найти цитируемый пост)
хочешь не хочешь, а про выбор бд уже начинаешь думать

Для начала определитесь с нагрузкой на текущую систему.
Т.е. что является узким местом.
Вставки, выборки, количество пользователей и т.д.

После этого можно будет говорить об оптимизации.

Автор: flashaa 8.4.2008, 13:18
Если просто посмотреть по миру... Не помню где  видел неплохой обзор реализации десятки посещаемых и крупных сайтов. 8 из них были сделаны на PHP+MySQL. 
Мне кажется, здесь не то оптимизируете. Либо оптимизировать данную ситуацию вообще невозможно ( при поставленных требованиях к деньгам ).

Автор: ReactOS 8.4.2008, 14:21
Цитата

Вообще, странная политика у университета

странная, а что же делать smile
я бы выделила на новую тачку денег smile но это мое имхо, и не я ректор smile

Автор: awers 8.4.2008, 14:59
Rexona, к примеру вполне хватает Oracle с его халявными 2гб. под базу.
Я использую окракл потому что: огромные нагрузки, организовал на нем бизнес логику. Тем самым я добился: неважно на чем написано приложение, Pacal, php, питон или вообще под дос. Клиентское приложение не несет на себе никакой нагрузки, за счет чего можно делать API интерфейс работы с системой в оракле открытым и каждый желающий может написать свою клиентскую прикладу.

А для маленьких простеньких решений неважно MySQL или постгри, хотя я отдал бы свое предпочтение MySQL

Автор: ReactOS 8.4.2008, 15:10
я читала, что вообще рекомендуют не использовать MSSQL для php, что MSSQL сама по себе слабее, чем MySQL, это так? smile
кстати, а никогда не занималась ASP. Вы не знаете, там так же легко можно коннектиться к любой бд и с ней работать или все-таки ASP не с каждой бд работает?

Автор: flashaa 8.4.2008, 15:11
Цитата(awers @  8.4.2008,  14:59 Найти цитируемый пост)
Я использую окракл потому что: огромные нагрузки, организовал на нем бизнес логику. Тем самым я добился: неважно на чем написано приложение, Pacal, php, питон или вообще под дос.

Какие такие непомерные нагрузки тянет оракл и не тянет mysql ?

Автор: Fortop 8.4.2008, 15:51
Цитата(Rexona @  8.4.2008,  15:10 Найти цитируемый пост)
что MSSQL сама по себе слабее, чем MySQL, это так?

не так.

Цитата(Rexona @  8.4.2008,  15:10 Найти цитируемый пост)
кстати, а никогда не занималась ASP. Вы не знаете, там так же легко можно коннектиться к любой бд и с ней работать или все-таки ASP не с каждой бд работает?

Можно коннектиться практически к любой БД.

Но я настоятельно рекомендую закончить метания и занятся профайлингом текущей системы.
После чего уже можно будет анализировать в чем проблема медленности системы.

Есть шанс отличный от нуля, что проблемы вообще не с БД или приложением, а с сетью.

Автор: awers 8.4.2008, 15:54
flashaa, ты это .... пошутил или как? ))
4 млн. записей в день. MySQL за 2 дня умерает

Добавлено через 14 минут и 13 секунд
Rexona, Так а зачем БД то вообще? 
про IIS забудь, нет такого слова ) 

Автор: ReactOS 8.4.2008, 16:22
Цитата(awers @  8.4.2008,  15:54 Найти цитируемый пост)
Rexona, Так а зачем БД то вообще? 
про IIS забудь, нет такого слова )  

вообще непонятно к чему такие фразы... :(

Автор: bars80080 8.4.2008, 16:30
Цитата(awers @  8.4.2008,  15:54 Найти цитируемый пост)
про IIS забудь, нет такого слова 
 почему? у меня где-то стоит

Автор: mishaSL 8.4.2008, 16:33
Rexona, вам уже был дан ответ, что скорее всего проблема не в БД. Конечно лучше еще уточнить сколько запросов к БД идет в часы пик, или хотябы в сутки. И какой общий объем данных.
Но я также склоняюсь к тому, что MySQL вам будет более чем достаточно.

Автор: ReactOS 8.4.2008, 16:38
Цитата(mishaSL @  8.4.2008,  16:33 Найти цитируемый пост)
Rexona, вам уже был дан ответ

да был, спасибо за ответ! smile

интересно только, почему настойчиво советуют забыть IIS
и стало интересно про Oracle, awers пишет, что супернагрузки только эта бд способна выдержить, не уж что только Oracle на это способен?

Автор: mishaSL 8.4.2008, 16:46
Цитата(Rexona @  8.4.2008,  16:38 Найти цитируемый пост)
супернагрузки только эта бд способна выдержить, не уж что только Oracle на это способен?

Я думаю самый лучший способ узнать - это попробовать.
Вот статья со сравнением СУБД: http://www.devx.com/dbzone/Article/20743 

Так же вот цитата с http://www.opennet.ru/opennews/art.shtml?num=3717:
Код

Oracle - это не только база данных, но еще и туча всяких серверов и приложений, это ПЛАТФОРМА. 
И вся эта туча серверов и приложений интегрирована между собой и завязана на собственно базу данных, 
используемую как хранилище не важно каких данных в любой форме. 


Добавлено через 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
Цитата(flashaa @  8.4.2008,  17:35 Найти цитируемый пост)
insert/update в сутки 

еще select не хватает...
а то как-то не полная картина получается, select/insert/update - самые распространенные запросы smile
 smile просто решила добавить одну детальку

Автор: awers 8.4.2008, 17:54
Цитата

4 млн. записей в день.

подразумевает 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
Цитата(Rexona @ 8.4.2008,  16:38)
интересно только, почему настойчиво советуют забыть IIS

Потому что вы в форуме посвященном PHP а он на IIS работает в разы медленнее. Хотите работать с  IIS посмотрите в сторону  ASP.NET.

Цитата(Feldmarschall @ 9.4.2008, 08:48)

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

Абсолютно согласен.
Даже самая быстрая база будет ползать из-за кривизны рук проектировщика системы и програмистов если у них руки не тем концом вставлены или они вообще нагами работают.

Цитата(Rexona @ 8.4.2008, 09:46)

3). Есть ли смысл вообще выбирать базу данных?

Имеет. Только исходить надо не из того какая база данных самая лучшая, а из того над каким проектом вы работаете. Если заказчику необходим сайт у которого посещаемость будет 1000 человек в день какой смысл использовать там дорогой Oracle?

Автор: flashaa 9.4.2008, 13:12
Цитата(awers @  9.4.2008,  01:52 Найти цитируемый пост)
ты по дисковому пространству и отводимым ресурсам посчитай... выйдет не более 100-150 юзеров на сервер

По какой логике получилось 100-150, ведь вот это
Цитата(flashaa @  8.4.2008,  21:24 Найти цитируемый пост)
клиентов может быть до десятков тысяч на одном сервере

я не с потолка взял. Именно десятки тысяч клиентов на одном сервере вполне могут располагаться (сталкивался с таким). 
На одном физическом сервере 10-20 тыс клиентов, они юзают сервер mysql, который расположен на этом же сервере.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)