Анкета

Въпрос: MySQL vs. PostgreSQL

  • MySQL
    - 27 (58.7%)
    PostgreSQL
    - 19 (41.3%)

Общ брой гласове: 59

Автор Тема: MySQL vs. PostgreSQL  (Прочетена 10411 пъти)

HammerFall_

  • Напреднали
  • *****
  • Публикации: 67
    • Профил
    • WWW
MySQL vs. PostgreSQL
« -: Dec 03, 2004, 10:57 »
Интересува ме колко хора ползват тези два типа бази от данни. Защо всеки предпочита MySQL за web приложения та дори това е станало като клише PHP+MySQL? По-точно ме интересува според крайните потребители какво прави MySQL по-предпочитана? Ще ви помоля да аргументирате отговора си.
Активен

Поздрави!!!
Григор Лекаров
------------------
Gentoo Linux/OpenBSD/Solaris*

n_antonov

  • Напреднали
  • *****
  • Публикации: 1185
    • Профил
    • WWW
MySQL vs. PostgreSQL
« Отговор #1 -: Dec 03, 2004, 11:16 »
По-предпочитана я прави по-лесната администрация и несравнимо по-голямото количесство документация, която може да бъде намерена по всевъзможни начини.

Не на последно място популярността на MySQL се дължи и на пълноценната поддръжка под Windows. Тъй като голяма част от уебразработчиците ползват Windows като платформа, фактът, че могат да си подкарат работещ и пълноценен MySQL и дори да търкалят сървъри  с него под тази ОС е решаващ.

Бих се радвал ако тази дискусия не се превърне в безполезно надвикване, че едното било sux, защото нямало еди какво си, а пък другото било rulz, защото имало еди що си.
Активен

-------------------------------------------------------------------------
./debian/rules

kingfisher

  • Напреднали
  • *****
  • Публикации: 102
    • Профил
MySQL vs. PostgreSQL
« Отговор #2 -: Dec 03, 2004, 11:23 »
По мои лични наблюдения начинаещите предпочитат PHP+MySQL , можеби защото MySQL изгелжда по лесен и документиран макар това да е само измамно на пръв поглед.Докато старите пушки си ръчкат на  PostgresSQL бил по "stable".Естествено този въпрос е от категорията Мерцедес или BMW,блондинка или брюнетка или Слак срещу SUSE '<img'>
Няма еднозначен отговор въпрос на вкус.
Активен

n_antonov

  • Напреднали
  • *****
  • Публикации: 1185
    • Профил
    • WWW
MySQL vs. PostgreSQL
« Отговор #3 -: Dec 03, 2004, 11:34 »
Производителността и стабилността са отноосителни понятия. Те не зависят само от един фактор. Доколко бързо ще ти работи базата зависи на първо място от софтуера, който се обръща към нея и работи с нея.

Да вземем за пример един интернет-проект. Нерядко може да се окаже, че MySQL работи по-бързо от PostgreSQL, въпреки че на теория трябва да е обратното. Е да, но на практика това доколко бързо ще ти работи базата зависи и от начина, по който си проектирал и написал скриптовете  си (да речем PHP).

Така че, ако някой си мисли, че като сложи PostgreSQL, проблемите са му решени, дълбокосе заблуждава. Дори напротив, ако не разбира много от програмиране, MySQL ще се окаже определено по-подходящото решение. Примери в практиката колкото искаш, при това доста емблематични. Въобще, нещата не са черно-бели.
Активен

-------------------------------------------------------------------------
./debian/rules

kostadinz

  • Напреднали
  • *****
  • Публикации: 197
    • Профил
MySQL vs. PostgreSQL
« Отговор #4 -: Dec 03, 2004, 11:48 »
Postgres-a май има повече функционалности, но като че ли не е толкова познат и от там неоценен.

за MySQL има много писаници, HOW-TOs, даже книги на български. Носеше му се славата на най бърз SQL сървър. Това дори да е вече минало - хората са инертни.
В книгите за Php и Perl примерите са 99% с MySQL.
По default в много дистрибуции се инсталва MySQL, както и контролния му център. В Qt designer-a си има хубави wizard-и.
Това си е мое мнение разбира се
Активен

CaBA

  • Напреднали
  • *****
  • Публикации: 303
    • Профил
    • WWW
MySQL vs. PostgreSQL
« Отговор #5 -: Dec 03, 2004, 12:17 »
Цитат
Защо всеки предпочита MySQL за web приложения?
Краткият отговор - защото MySQL се появи преди PostgreSQL и натрупа повече потребители.
Дългият отговор: защото повечето "програмисти", които ползват MySQL на въпроса "Трябва ли базата данни да поддържа транзакции?" отговарят с: "Не, ние работим само с TCP/IP" (Това не е майтап! Онзи ден го чух от устата на един такъв "програмист").  Тези хора не са чували през живота си за референтна цялост или нормална форма. Лично за мен MySQL е като Трабант, на който са сложили двигател на Мерцедес - позволява ти да се засилиш бързо и да се удариш МНОГО лошо. Да, знам че напоследък в MySQL започнаха да се появяват тригери, и че мислят и за съхранени процедури - обаче тия неща ги има в Постгрето от десетина години. И работят.
Активен

10 години ябълкова диета стигат, стигат!

  • Гост
MySQL vs. PostgreSQL
« Отговор #6 -: Dec 03, 2004, 18:51 »
CaBA - много е вярно това което казваш!

MySQL започна като експеримент на някой да направи SQL сървър. От 'малките' SQL-и  съм признал единствено Interbase, сега вече има паралелен Free проект наречен Firebird.
Изключително лесно се инсталира, на Linux. Има Тригери, Записани процедури, сабития, всичко като при големите SQL-и.

И винаги сам се чудил, за голямата олелия около MySQL-а. Не го уважавам изобщо.
Активен

gamehack

  • Напреднали
  • *****
  • Публикации: 244
    • Профил
    • WWW
MySQL vs. PostgreSQL
« Отговор #7 -: Dec 03, 2004, 19:27 »
Първо трябва да видим какви са изискванията на скрипта/програмата откъм базата данни. Ако искаме да правим Уеб програма и скоростта е важна, тогава трябва да изберем MySQL, защото е бърза и е разработена така че да работи добре с Уеб-базирани сървъри. Въпреки това, ако искаме за създадем програма, коята ще използваме транзакции и друга екзотична функционалност, PostgreSQL е изборът.

Въпреки че MySQL не е напълно съвместима с ANSI SQL стандарта, трябва да вмъкна, че PostgreSQL е по-близо до ANSI SQL стандарта, а MySQL до ODBC стандарта.

Ето няколко предложения дали да избереш MySQL пред PostgreSQL:
 1.MySQL  е по-бърза от PostgreSQL
 2.Дизайна на базата данни ще бъде по-прост(simple)
 3.Ще създаваш прост(basic) сайт
 4.MySQL  е добре тествана и има много ресурси за нея
 5.Няма нужда от чистки(cleanups) при MySQL(Vacuum)

Ето малко за PostgreSQL – не много уеб разработчици го използват, защото мислят, че по-голямата функционалност има ефект върху скоростта(което е така). Лично аз не използвам повечето от функционалността, поради това няма смисъл защо да губя скорост. Но от друга страна, точно тази функционалност ми позволяват да сложността на базата данни от програмата/скрипта. Ако искам същото при MySQL ще трябва да пиша сложни и много куерита.

Ето няколко причина да се използва PostgreSQL пред MySQL:
 1.Комплексна архитектура на базата данни
 2.Ако се идва от Oracle, Sybase или MSSQL
 3.Комплексни групи от правила
 4.Използването на вложени процедури
 5.Транзакции
 6.Използването на географични данни
 7.R-дървета (използвани при индекси)

Също така трябва да има и трети възможен отговор - Според зависи '<img'>

Поздрави,
gamehack
Активен

Simplicity all the way...

CaBA

  • Напреднали
  • *****
  • Публикации: 303
    • Профил
    • WWW
MySQL vs. PostgreSQL
« Отговор #8 -: Dec 03, 2004, 20:17 »
Цитат
Ако искаме да правим Уеб програма и скоростта е важна, тогава трябва да изберем MySQL

Това може да се перефразира така: "Ако данните, които съхраняваме, не са важни, и може да си позволим да ги изгубим, тогава трябва да изберем MySQL". Има и такива приложения, за които  MySQL е доста удобен - примерно за системен администратор, който държи в таблици логовете на уеб сървър и иска лесно да вади информация с прости заявки.
Има и "програмисти", които не са губили данни заради липсата на транзакции в базата данни, и сигурно си мислят "Абе за какво ми е тази екзотична функционалност". Да се изтъква бързината като предимство пред сигурността  е като да махнеш предпазните колани и еърбеговете от автомобил, защото са "екзотична функционалност" и по-леката кола е по-бърза.
И накрая - на миналогодишния OpenFest имаше лекция на разработчик на MySQL. Въпросите след това бяха главно: "Кога ще има тригери?" и "Кога ще има съхранени процедури?". Правете си изводите сами.
Активен

10 години ябълкова диета стигат, стигат!

zazzko

  • Напреднали
  • *****
  • Публикации: 626
    • Профил
    • WWW
MySQL vs. PostgreSQL
« Отговор #9 -: Dec 03, 2004, 22:38 »
Аз ли нещо бъркам или не съм прав..но MySQL използва транзакции когато типа на базата данни го позволява (InnoDB, BDB). Наистина това не е режима по подразбиране (т.е. трябва да се включи с set autocommit=0).
Ще ви бъда много благодарен ако ми кажете, дали се лъжа или не (правил съм програми, които използват тази функционалност и ще съм доста притеснен ако тя не работи).

n_antonov

  • Напреднали
  • *****
  • Публикации: 1185
    • Профил
    • WWW
MySQL vs. PostgreSQL
« Отговор #10 -: Dec 03, 2004, 23:27 »
Сава, данни се губят и под PostgreSQL, не го идеализирай толкова'<img'>
Активен

-------------------------------------------------------------------------
./debian/rules

HammerFall_

  • Напреднали
  • *****
  • Публикации: 67
    • Профил
    • WWW
MySQL vs. PostgreSQL
« Отговор #11 -: Dec 04, 2004, 14:24 »
Напълно е ясно, че дори стабилна БД като Oracle би могла да се срине като се намеси задклавиатурния фактор. Все пак забравих да уточня, че нямам напредвид това. Наистина MySQL се разработва много преди PostgreSQL и е с известна преднина, лесна е за администриране, но възможността на PostgreSQL да работи с съхранени процедури също не е за изхвърляне.
Въпросът ми не е насочен към това да провокирам спор между това коя БД е по-добра. Просто ме интересуваше защо MySQL е толкова предпочитана пред PostgreSQL. В момента работя и с двете и не мисля, че мога да кажа че едната е по-добра от другата. Според мен MySQL е един добър старт към релационните БД.
Благодаря много за това че аргументирахте отговорите си и не превърнахте анкетата в безмислен спор.
Активен

Поздрави!!!
Григор Лекаров
------------------
Gentoo Linux/OpenBSD/Solaris*

CaBA

  • Напреднали
  • *****
  • Публикации: 303
    • Профил
    • WWW
MySQL vs. PostgreSQL
« Отговор #12 -: Dec 06, 2004, 13:02 »
Цитат
Напълно е ясно, че дори стабилна БД като Oracle би могла да се срине като се намеси задклавиатурния фактор

Хм, точно обратното имах предвид - референтната цялост, която предлагат продукти като Oracle и PostgreSQL прави изключително трудно да се омажат данните в такава база. Един поучителен пример - звъни ни системния администратор на един клиент и пита защо не може да изтрие записи от една таблица. Като разгледахме таблицата, видяхме, че едно от полетата се реферира от друга таблица. MySQL не би го спрял да изтрие този ред и тогава в таблицата-референт би останало само едно нищо незначещо число. Като резултат цялото приложение щеше да спре да работи.
Цитат
MySQL използва транзакции когато типа на базата данни го позволява (InnoDB, BDB)

Така е. Последният път, когато го разглеждах преди година, InnoDB беше около 2 пъти по-бавна от PostgreSQL и имаше проблеми при интезивно писане - дневникът на транзакциите ставаше огромен и единственото решение беше да се рестартира MySQL от време на време.
Активен

10 години ябълкова диета стигат, стигат!

CaBA

  • Напреднали
  • *****
  • Публикации: 303
    • Профил
    • WWW
MySQL vs. PostgreSQL
« Отговор #13 -: Dec 06, 2004, 13:15 »
Един прекрасен пример, как липсваща функционалност на базата данни се отразява в растяща сложност на кода, е Bugzilla. Ето един много интересен цитат от нейната документация:
Цитат
You run into an interesting problem when Bugzilla reaches a high level of continuous activity. MySQL supports only table-level write locking. What this means is that if someone needs to make a change to a bug, they will lock the entire table until the operation is complete. Locking for write also blocks reads until the write is complete. The "shadowdb" parameter was designed to get around this limitation. While only a single user is allowed to write to a table at a time, reads can continue unimpeded on a read-only shadow copy of the database. Although your database size will double, a shadow database can cause an enormous performance improvement when implemented on extremely high-traffic Bugzilla databases.

 As a guide, mozilla.org began needing "shadowdb" when they reached around 40,000 Bugzilla users with several hundred Bugzilla bug changes and comments per day.

Сега някой "програмист" сигурно ще възкликне:"Ха, моята база данни никога няма да стане толкова голяма".  Хората, избрали MySQL като база данни за Bugzilla също са мислили така.
Активен

10 години ябълкова диета стигат, стигат!

CaBA

  • Напреднали
  • *****
  • Публикации: 303
    • Профил
    • WWW
MySQL vs. PostgreSQL
« Отговор #14 -: Dec 06, 2004, 13:35 »
Цитат
Според мен MySQL е един добър старт към релационните БД.
Един добър старт е не този старт, който ти позволява бързо да започнеш, а този, който ще ти позволи да се усъвършенстваш впоследствие. Веднъж един човек ми разказа много интересна случка. Той е бил инженер в завод, където са обучавали заварчици. За него е било много по-лесно да обучи абсолютно начинаещ работник, отколкото самоук заварчик, който е придобил много вредни навици, от които доста трудно може да се откаже. Най-добрият старт в релационните бази данни според мен си остават 12-те принципа на д-р Код (изобретателят на релационния дизайн).
Активен

10 години ябълкова диета стигат, стигат!

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
PostgreSQL заявка
Общ форум
madmak 0 1409 Последна публикация Sep 20, 2004, 13:24
от madmak
PostgreSQL 8
Настройка на програми
ellmo 3 1779 Последна публикация Jun 10, 2005, 19:24
от
Как да видя наличните таблици в PostgreSQL?
Настройка на програми
mhydra 11 3731 Последна публикация Nov 01, 2005, 16:13
от mhydra
Как да видя базите данни и таблиците с PostgreSQL
Web development
mhydra 4 2342 Последна публикация Nov 02, 2005, 10:01
от mhydra
Има ли някъде книги на български за PostgreSQL
Общ форум
mhydra 0 2108 Последна публикация Jan 26, 2006, 13:42
от mhydra