LINUX.ORG.RU

MySQL & PostgreSQL. Сравнительный анализ

 ,


0

0

MySQL и PostgreSQL – две наиболее популярные open-source базы данных в мире. Каждая база имеет свои особенности и отличия. Вначале поговорим об истории развития и архитектуре программных продуктов, а затем перейдем к сравнительному анализу. В статье речь идет о небольшом вводном курсе для тех, кто еще не определился с выбором ПО.

>>> Подробности

★★★

Проверено: catap ()

Ответ на: комментарий от Anoxemian

> Это же сплошной ад, когда, казалось бы, специализированный инструмент для работы с большими объёмами данных не умеет даже средневжвешенные величины и сквозные суммы выдавать.

Угу. А ещё оно до сих пор не умеет по-людски и без извращений межстрочные операции производить. Простой пример - из строк с ежеминутными абсолютными значениями текущего трафика извлечь ежеминутную информацию о скорости канала. Сделать можно, но через ж... и некрасиво. Про что-либо более сложное я вообще молчу.

Stanson ★★★★★
()

На конференции по MySQL докладчик из Sun выдал фразу «Представте себе они доверили хранить результаты голосования на выборах в США базе MySQL! Мы не знали плакать или смеяться. Естественно это все упало, нам пришлось это разгребать»

vertexua ★★★★★
()

гм. Что-то автор о себе рассказать стесняется :) не к добру.

dotbg ★★★★
()
Ответ на: комментарий от Stanson

> Ну скажите же уже кто-нибудь, postgres уже научился нормально жить без периодического vacuum?

Начиная с 8.4 с этим заметно лучше. Вообще, начиная с 8.4 многие вещи в постгресе заметно подтянулись.

От мыскуля я отказываюсь по причине его принципиально хренового оптимизатора, когда из-за того, что у меня есть подзапросы, он не может использовать индекс.

Casus ★★★★★
()

Честно говоря всегда думал что мускуль хреновая база данных... Но постоянно сталкивался с фактом, что тем неменее крупные проекты используют именно его а не посгрес. Из личного опыта - eBay, Facebook. При чем базы там огроменные. Почему не посгрес, не знаю, вроде бы в качестве аргумента - более простое построение кластера, да и по большому счету какими бы наворочеными фишками не обладал посгрес, все равно мускуля хватает с головой.

hunger
()
Ответ на: комментарий от HappySquirrel

> Если вам нужна СУБД - это PG или Oracle. А если просто небольшое хранилище не слишком ценной информации - тут можно и MySQL применить.

насколько сложно сделать репликацию на PG? на MySQL делается довольно просто... а для PG штатной - нет (до версии 9.0) и приходится выбирать и тестить каждую.

VoDA ★★
()
Ответ на: комментарий от josephson

> почему в такие сравнительные обзоры открытых СУБД Firebird не попадает?

фича «невосстановимый бэкап» исключает эту программы из СУБД. есть и другие «странно»/глючные фичи ;)

VoDA ★★
()
Ответ на: комментарий от hunger

> Из личного опыта - eBay, Facebook.

eBay хранит данные в облаке, там своя система типа DHT. Facebook сделал подобие DHT для хранения данных и заопенсорсил - Apache Cassandra =)

VoDA ★★
()
Ответ на: комментарий от anonymous

>Как раз для кде то оно сгодится - там mysql используется по назначению - хранилище данных с языком SQL, т.е. записная книжка. Ничего более серьёзного не требуют.

sqlite во все поля. С учетом наличия универсального интерфейса QtSql различия в API несущественны, а эффективность sqlite выше

annulen ★★★★★
()
Ответ на: комментарий от VoDA

Еще была фича года 2 назад у Firebird (не знаю как щас) на amd64 многоядерных адово грузило проц и трогало 1 ядро всего

anonymous
()

Статья имеет 6 частей и незакончена. Где итог? Будет?

GladAlex ★★★★★
()
Ответ на: комментарий от anonymous

>>Кроме похожего названия Ingress никоим боком не связан с Pg

Само название «Postgres» расшифровывалось как «Post Ingres», соответственно,

Про это я и написал.

при создании Postgres были применены многие уже ранее сделанные наработки.

А вот это домысел: Миша писал, что ни одной строчки кода не было перенесено в Pg

fi ★★★
()
Ответ на: комментарий от hunger

>Почему не посгрес

MySQL проще в разворачивании и обслуживании и быстрее работает на простых запросах. Часто и первое, и второе решают...

KRoN73 ★★★★★
()
Ответ на: комментарий от VoDA

>eBay хранит данные в облаке, там своя система типа DHT. Facebook сделал подобие DHT для хранения данных и заопенсорсил - Apache Cassandra =)

Кассандру они для другого пользуют, а MySQL у них несколько сотен и в каждом из них используются плоские запросы. Недавно где-то доклад на эту тему от фейсбуковцев пробегал

alex-w ★★★★★
()
Ответ на: комментарий от Stanson

кажется, с 8.х делается автоматический вакуум.

anonymous
()
Ответ на: комментарий от KRoN73

> MySQL проще в разворачивании и обслуживании

ложь.

и быстрее работает на простых запросах.

не верю.

anonymous
()
Ответ на: комментарий от anonymous

>ложь

Гы. MySQL развернуть - это выполнить что-то типа «emerge mysql» или «apt-get install mysql». И запустить. Всё.

Установить PostgreSQL - это выполнять много действий по How-to.

Как бы там ни было, я на PostreSQL ещё ни одной системы поднять не осилил. Развернуть его меня ещё хватает, а вот потом администрировать - всё. Оставляю каждый раз до лучших времён.

не верю.


Проверь :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

> Развернуть его меня ещё хватает, а вот потом администрировать - всё.
Ну, тюнить постгрес занятие для не совсем слабонервных, но со временем привыкнуть можно.

Lumi ★★★★★
()
Ответ на: комментарий от Lumi

>Ну, тюнить постгрес занятие для не совсем слабонервных

Это уже не для не совсем слабонервных, а для совсем не слабонервных :D Я до этого этапа вообще ни разу не дошёл :)

KRoN73 ★★★★★
()
Ответ на: комментарий от anonymous

У них 2 архитектуры. Подозреваю, у вас был «суперсервер» (использует потоки). «Классик» создаёт для запросов процессы, а распихать их по ядрам - задача ОС.

josephson ★★
()
Ответ на: комментарий от yoghurt

>Не, в детском саду я голых баб на асфальте мелом рисовал.

всем ясно, что рисованные бабы — отстой. Тем более, мелом на асфальте, они еще отстойней мускуля.

c: choice downgrade

anonymous
()
Ответ на: комментарий от grigoreo

>ну сходства синтаксиса хранимок налицо, притом есть же комерческий вариант постгре где на чистом PL и пишется?разве нет?

Попробуй вернуть recordset из процедуры в Oracle, и из функции в PG. Про то, что процедур как таковых в PG просто нет тоже не забудь.

Напиши в любой процедуре Oracle и функции Postgres что-то с курсором, использующим параметры.. Короче, я могу так долго говорить.

Отличий - полно. plpgsql на порядок удобнее чем pl/sql..

HappySquirrel
()
Ответ на: комментарий от bolmer

>Insert быстрее на MySQL, чем на Posgress, раз 5. Тестировал лично.

Что за бред? Во-первых, применять insert надо уметь. Мне удается на MySQL получить 14K trans/sec, на PG - 12K trans/sec на пустой базе. Но вот на больших таблицах эти цифры превращаются в 2K trans/sec и 7.5 trans/sec соответственно. Кроме того, если применить ввод сначала в temp table, а потом большой транзакцией - в таблицу, то все ускоряется в 2-3 раза, но опять не в пользу MySQL.

HappySquirrel
()
Ответ на: комментарий от josephson

> У них 2 архитектуры. Подозреваю, у вас был «суперсервер» (использует потоки). «Классик» создаёт для запросов процессы, а распихать их по ядрам - задача ОС.

А потоки типа не распихиваются по ядрам с помощью ОС? =) Если брать Linux, то поток по сути ничем не отличается от процесса.

DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от HappySquirrel

даже не спорю (видел оба языка в действии), просто сказал что сходство есть))

grigoreo
()
Ответ на: комментарий от josephson

>почему в такие сравнительные обзоры открытых СУБД Firebird не попадает?

Firebird — зло во плоти. Включать Firebird в такие сравнения — все равно что включать бсд в сравнение дистров линукса.

Единственное приемущество Firebird, из-за которого приходится им пользоваться — её легко установить под винду.

anonymous
()
Ответ на: комментарий от hunger

> Честно говоря всегда думал что мускуль хреновая база данных... Но постоянно сталкивался с фактом, что тем неменее крупные проекты используют именно его а не посгрес. Из личного опыта - eBay, Facebook. При чем базы там огроменные. Почему не посгрес, не знаю, вроде бы в качестве аргумента - более простое построение кластера, да и по большому счету какими бы наворочеными фишками не обладал посгрес, все равно мускуля хватает с головой.

У меня друг работал в такой компании. Они умудрились создать кластер со 140+ нодами на MySQL. Ох они там и прыгали вокруг этого чуда.. А скорость все равно низкая.

HappySquirrel
()
Ответ на: комментарий от alex-w

>> Facebook сделал подобие DHT для хранения данных и заопенсорсил - Apache Cassandra =)

Кассандру они для другого пользуют, а MySQL у них несколько сотен и в каждом из них используются плоские запросы. Недавно где-то доклад на эту тему от фейсбуковцев пробегал

вроде как Cassa может быть применена и возможно они переходят на Cass с MySQL. То что раньше применяли MySQL - это верно, тога тема доклада просто слегка устарела ;)

VoDA ★★
()
Ответ на: комментарий от fi

а давай тебя забаним?

А давай тебя забаним? Чтобы научился вести себя корректно по отношению к другим людям? Раз такой умный, напиши статью сам, а мы посмотрим.

KalininaSv
()
Ответ на: комментарий от josephson

Потому что он до сих пор не вышел из статуса поделки юных техников, и что там сравнивать в промышленом масштабе?(там еще пилить и пилить)

grigoreo
()
Ответ на: комментарий от KRoN73

> Установить PostgreSQL - это выполнять много действий по How-to.

ваши сведения устарели: Ubuntu sudo aptitude install postgresql-8.4

подключаемся + работаем ;)

и на винду PostgreSQL ставиться тоже в легкую. Из-за лицензий у нас применяется в разработке в основном PG, так что плавали =)))

VoDA ★★
()
Ответ на: комментарий от HappySquirrel

Я что-то не заметил зависимости скорости Insert-ов от размера таблиц. Наверное потому, что таблицы у меня были плоские, без всяких индексов, primary/foreign кеев и пр. Вот для таких таблиц MySQL и есть. И на таких данных он всех рвёт. Это надо осознавать.

bolmer
()
Ответ на: комментарий от VoDA

>ваши сведения устарели

Возможно. Но, как бы там ни было, даже когда ложечки находятся, осадок всё равно остаётся.

KRoN73 ★★★★★
()
Ответ на: комментарий от Lumi

>Ну, тюнить постгрес занятие для не совсем слабонервных, но со временем привыкнуть можно.

Особенно, если для задачи мускуля хватает за глаза.

ps: мне тут на днях один деятель рассказывал, что для любых задач надо брать оракл. и венду, естественно.

anonymous
()
Ответ на: комментарий от KRoN73

> Возможно. Но, как бы там ни было, даже когда ложечки находятся, осадок всё равно остаётся.

я начал использовать и то и то уже позже. Осадка бОльше от MySQL, потому даже для своих проектов применяю PG просто потому что удобнее.

VoDA ★★
()
Ответ на: комментарий от josephson

Возможно, это справедливо только для виндов, про линукс - ни слова.

Multiprocessor support

Classic

Supports SMP (symmetrical multi-processor) systems. This improves the performance in case of multiple unrelated connections.
Superserver

No SMP support. In fact, Superserver performance may drop significantly on multiprocessor Windows systems as a result of processor swapping. To prevent this from happening, set the CpuAffinityMask parameter in the configuration file firebird.conf.

josephson ★★
()
Ответ на: комментарий от KRoN73

>Это ещё не тесты, так, оценки :)

А ты не скромничай. Для меня, например, этот твой тест (или «оценка») в стопицот раз информативней сабжевой статьи, и хз во сколько раз более своевременный.

anonymous
()
Ответ на: комментарий от anonymous

Если учитывать темпы развития PostgreSQL, может скоро начать иппать :)

anonymous
()
Ответ на: Вопросы по PostgreSQL от PavelR

анонимусы - цыц !
автор статьи - я
вообще в цикле 7 статей, про конфигурацию, масштабирование, репликацию в отдельном разрезе для каждой базы


kto_tama ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.