Linux за българи: Форуми

Програмиране => Общ форум => Темата е започната от: HammerFall_ в Dec 03, 2004, 10:57



Титла: MySQL vs. PostgreSQL
Публикувано от: HammerFall_ в Dec 03, 2004, 10:57
Интересува ме колко хора ползват тези два типа бази от данни. Защо всеки предпочита MySQL за web приложения та дори това е станало като клише PHP+MySQL? По-точно ме интересува според крайните потребители какво прави MySQL по-предпочитана? Ще ви помоля да аргументирате отговора си.


Титла: MySQL vs. PostgreSQL
Публикувано от: n_antonov в Dec 03, 2004, 11:16
По-предпочитана я прави по-лесната администрация и несравнимо по-голямото количесство документация, която може да бъде намерена по всевъзможни начини.

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

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


Титла: MySQL vs. PostgreSQL
Публикувано от: kingfisher в Dec 03, 2004, 11:23
По мои лични наблюдения начинаещите предпочитат PHP+MySQL , можеби защото MySQL изгелжда по лесен и документиран макар това да е само измамно на пръв поглед.Докато старите пушки си ръчкат на  PostgresSQL бил по "stable".Естествено този въпрос е от категорията Мерцедес или BMW,блондинка или брюнетка или Слак срещу SUSE :)
Няма еднозначен отговор въпрос на вкус.


Титла: MySQL vs. PostgreSQL
Публикувано от: n_antonov в Dec 03, 2004, 11:34
Производителността и стабилността са отноосителни понятия. Те не зависят само от един фактор. Доколко бързо ще ти работи базата зависи на първо място от софтуера, който се обръща към нея и работи с нея.

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

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


Титла: MySQL vs. PostgreSQL
Публикувано от: kostadinz в Dec 03, 2004, 11:48
Postgres-a май има повече функционалности, но като че ли не е толкова познат и от там неоценен.

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


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


Титла: MySQL vs. PostgreSQL
Публикувано от: в Dec 03, 2004, 18:51
CaBA - много е вярно това което казваш!

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

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


Титла: MySQL vs. PostgreSQL
Публикувано от: gamehack в 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-дървета (използвани при индекси)

Също така трябва да има и трети възможен отговор - Според зависи :)

Поздрави,
gamehack


Титла: MySQL vs. PostgreSQL
Публикувано от: CaBA в Dec 03, 2004, 20:17
Цитат
Ако искаме да правим Уеб програма и скоростта е важна, тогава трябва да изберем MySQL

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


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


Титла: MySQL vs. PostgreSQL
Публикувано от: n_antonov в Dec 03, 2004, 23:27
Сава, данни се губят и под PostgreSQL, не го идеализирай толкова;)


Титла: MySQL vs. PostgreSQL
Публикувано от: HammerFall_ в Dec 04, 2004, 14:24
Напълно е ясно, че дори стабилна БД като Oracle би могла да се срине като се намеси задклавиатурния фактор. Все пак забравих да уточня, че нямам напредвид това. Наистина MySQL се разработва много преди PostgreSQL и е с известна преднина, лесна е за администриране, но възможността на PostgreSQL да работи с съхранени процедури също не е за изхвърляне.
Въпросът ми не е насочен към това да провокирам спор между това коя БД е по-добра. Просто ме интересуваше защо MySQL е толкова предпочитана пред PostgreSQL. В момента работя и с двете и не мисля, че мога да кажа че едната е по-добра от другата. Според мен MySQL е един добър старт към релационните БД.
Благодаря много за това че аргументирахте отговорите си и не превърнахте анкетата в безмислен спор.


Титла: MySQL vs. PostgreSQL
Публикувано от: CaBA в Dec 06, 2004, 13:02
Цитат
Напълно е ясно, че дори стабилна БД като Oracle би могла да се срине като се намеси задклавиатурния фактор

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

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


Титла: MySQL vs. PostgreSQL
Публикувано от: CaBA в 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 също са мислили така.


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


Титла: MySQL vs. PostgreSQL
Публикувано от: n_antonov в Dec 06, 2004, 14:20
Цитат (CaBA @ Дек. 06 2004,16:35)
За него е било много по-лесно да обучи абсолютно начинаещ работник, отколкото самоук заварчик, който е придобил много вредни навици, от които доста трудно може да се откаже.

Нещо подобно важи за много други неща. Например, много по-лесно е да обучаваш на Линукс човек, който за първи път застава пред компютър, отколкото потребител, който от години насам се е сраснал с Windows например.


Титла: MySQL vs. PostgreSQL
Публикувано от: zazzko в Dec 07, 2004, 10:00
CaBA благодаря за отговора. Важното е, че транзакции има. Доколкото дали е бавна..засега успява да се справи прилично. Имал съм приложение, което вкарва в базата данни над 100 000 записа наведнъж и това ставаше за около 10-15 мин (на Duron 700 MHz) при конфигурация за small server.


Титла: MySQL vs. PostgreSQL
Публикувано от: milendimov в Dec 08, 2004, 15:33
Цитат (CaBA @ Дек. 06 2004,14:02)
Един поучителен пример - звъни ни системния администратор на един клиент и пита защо не може да изтрие записи от една таблица. Като разгледахме таблицата, видяхме, че едно от полетата се реферира от друга таблица. MySQL не би го спрял да изтрие този ред и тогава в таблицата-референт би останало само едно нищо незначещо число. Като резултат цялото приложение щеше да спре да работи.

Без да се заяждам...
Но все пак MySQL е RDBMS :)
Което значи, че гореописаното е невъзможно :)
Foreign Keys (Constraints).. etc.

Моето лично впечатление от работата с PostrgeSQl&MySQL:

Двете са доста сходни. Не бих ги препоръчал за употреба управление на база данни над 1-2GB.

MySQL:

- огромно количество документация
- множество средства за управление
- много потребители (лесно ще се намират решения на евентуални проблеми при употреба)
- Лиценз GPL

PostgreSQL:

- наличие на малко повече възможности - съхранени процедури, тригери (Но все пак в MySQL AB работят по въпроса, не съм сигурен до какъв етап е в момента, възможно е да са достъпни в текущите версии)
- Версия 7.xx ми се стори по-стабилна и с по-голямо бързодействие от 4.23 на MySQL ( поне за данните и методите които използвах)
- Лиценз BSD
- Мисля, че за 8.xx бяха обещали версия за Windows платформа.


Титла: MySQL vs. PostgreSQL
Публикувано от: в Dec 08, 2004, 15:51
Ето ви една статия, която е сравнително стара и не отразява текущото състояние на продуктите, но все пак показва как се държат и двата SQL сървъра при доста голямо натоварване:

http://www.phpbuilder.com/columns/tim20000705.php3

Иначе който иска стабилност и скорост си купува яка машина с не знам колко гигабайта РАМ, N на брой процесори и тъй като няма да го бърка при такава машина да си плати лиценза ще си купи Oracle :)

Offtopic: Наздраве на всички студенти!


Титла: MySQL vs. PostgreSQL
Публикувано от: Йордан в Dec 09, 2004, 16:17
Не ви ли омръзна да сравнявате. Правите някакви си сравнения от тип "БМВ3 - Голв3". На непросфетените ще препоръчам да отидат на някое стрийт рейс състезание (има ги във всеки по-голям град).


Титла: MySQL vs. PostgreSQL
Публикувано от: sys7em в Dec 10, 2004, 13:19
Slack 10 + php +mysql + phpmyadmin + pear

Комбинация която ми върши перфектна работа :)


Титла: MySQL vs. PostgreSQL
Публикувано от: picmaster в Feb 28, 2005, 12:44
Не искам да създавам повод за кавги, а само да отразя собственото си мнение. Преди време работих с MySQL,  а сега с PostgreSQL. Имах възможност да опитам 2-та сървъра за RDB и мнението ми е, че MySQL понякога достига до скорост около 2 пъти по-голяма в сравнение с PostgreSQL, на един и същи хардуер, като обаче, цената за това е по-простите заявки (примерно няма(ше) вложени SELECT-и) които могат да се правят, разни проблемчета (липса на именовани пространства, липса на скриптови разширения за функциите, липса на наследявания на таблици, загуба на стойноста на auto-increment индекси в празни таблици и т.н.), и поразяващата несигурност на базата-данни при внезапни спирания (пълна неработоспособност след внезапно спиране). Обратно, PostgreSQL често пъти е по-бавен, но пък друго си е да "караш бавно, но с предпазен колан" :) . Въпрос на личен избор. Слава богу, че ги има и двете, за да мога да избирам кое е по-подходящо за конкретната цел.

P.S.: Не мога да скрия субективната си омраза, когато поради "субективни" фактори се срина една наша фискална система с MySQL ама точно в Центъра по Метрология... :(


Титла: MySQL vs. PostgreSQL
Публикувано от: tzappa в Mar 03, 2005, 15:59
Нека да не бъдем голословни:
DB Benchmarks
Моят личен (и професионален) избор (по-скоро даденост) към момента е Firebird, но погледът ми е насочен към Postgre SQL.

Успех на всички.


Титла: MySQL vs. PostgreSQL
Публикувано от: BULFON в Apr 14, 2005, 09:39
На последната конференция Георги Чорбаджийски изнесе една доста обширна и подробна лекция за PostgreSQL. Материали (засега само презентацията) има тук:
http://conf.linux-bg.org/fb/index.php?folder=2005-03/prezentacii
Аз бих имал предвид докато разглеждам неговата презентация, че той е склонен да мисли PostgreSQL за по-добрата :)!