1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.

MySQL vs PosgreSQL

Тема в разделе "Программирование", создана пользователем firefly, 04.12.07.

  1. firefly

    firefly Активный участник

    1.956
    0
    А вот скажите, если выбирать из этой парочки (MySQL vs PosgreSQL), то кто из них легче отнесется с 1 миллиону одиночных инсертов, затем 1 миллиону одиночных чтений, а затем 1 миллиону удалений и все это за один час? При условии, что таблица уже содержит около миллиона записей. Пока берем, что ресурсы железа неограничены.
     
  2. HorstWessel

    HorstWessel Активный участник

    1.585
    0
    firefly,
    Одинаково
     
  3. AlTk

    AlTk Читатель

    10.699
    0
    firefly,
    вполне возможно, что MySQL даже быстрее будет, так как он попроще в плане всяких там ссылочных целостносстей, транзакций и т.д.
     
  4. HorstWessel

    HorstWessel Активный участник

    1.585
    0
    Напрашивается вопрос: если время жизни миллиона записей всего один час, должны ли быть эти записи персистентными?
     
  5. firefly

    firefly Активный участник

    1.956
    0
    HorstWessel, время жизни записей будет намного больше, в реале не менее года. Я рассматриваю вариант отказоустойчивости при теоретических перегрузках. В реальной жизни такое врятли будет, но "запас прочности" должен быть всегда.

    добавлено через 8 минут
    На самом деле там будут храниться логи
     
  6. Penis PL/SQL

    Penis PL/SQL Гость


    1. Что именно за MySQL вы рассматриваете - MyISAM, InnoDB, MaxDB?
    2. Какое количество одновременных подключений к базе?
    Если у вас не более 10 подключений, то вполне подойдет резкий как понос MyISAM, тем более, что у ваc нет update.
    На 50-100 подключениях я бы все же порекомендовал Postgres, несмотря на то, что он версионник и потребует периодического вакуума :(
     
  7. HorstWessel

    HorstWessel Активный участник

    1.585
    0
    Засада может быть в другом месте. Файлы больше 2ГБ не есть гут по умолчанию. Реляционная база данных самое быстрое, простое и привычное, что можно предложить, но не самое лучшее... Администратору придется быть на чеку ;)

    Для надежности лучше продумать иной бэкэнд (тем более нет конкурентных изменений - нет транзакций), а аггрегации (хотя бы предварительные, что может понадобиться для анализа) можно произвести на лету и хранить уже в реляционной БД.
     
  8. firefly

    firefly Активный участник

    1.956
    0
    Спасибо, я забыл об этом. У мускуля с этим точно наблюдаются сложности, а про посге не знаю.

    2All: Всем спасибо огромное. Сильно помогли.
     
  9. SperaSoft

    SperaSoft Новичок

    1
    0
    MySQL имеет несколько движков, с разными параметрами.

    Из основных есть MyISAM - простой движок без поддержки транзакций и версионности. Быстро работает за счёт того, что ей не требуется поддерживать всяческие журналы. При изменении данных update/delete вся таблица кратковременно лочится и не доступна для остальных конкурирующих запросов, в случае insert данные просто дописываются в конец и поэтому необходимости лочить таблицу нет. Вообщем, накладные расходы на журнализацию минимальны, но есть моменты с локами, что критично, когда у нас есть много разнотипных одновременных запросов.

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

    PostgreSQL поддерживает только один движок - Postgres Storage System, для него верно то же, что и для InnoDB в плане журналов и конурентных транзакций. Поэтому вопрос выбора между MySQL InnoDB и PostgreSQL это большей частью вопрос выбора и сравнения высокоуровневых возможностей SQL.

    Вероятно, если транзакционность не требутся, то выбором в данной ситуации будет MySQL MyISAM.


    SperaSoft Team :: http://www.sperasoft.com
     
  10. AlTk

    AlTk Читатель

    10.699
    0
    SperaSoft,
    "... поддержку транзакций и версионность, ..."
    под версионностью Вы именно версионность понимаете, именно почти "классическую" или теоретическую, как в Interbase???
    это сейчас сделано в MySQL???
     
  11. RubiN

    RubiN Активный участник

    5.531
    31
    MySQL IMHO лучше, особенно все что начинается с пятого,с Postgre были траблы,которые решались с MySQL (под FreeBSD правда.... в мастдайке не пробовал)
     
  12. AlTk

    AlTk Читатель

    10.699
    0
    RubiN,
    не несите херню.
     
  13. OpenBoy

    OpenBoy Активный участник

    21.670
    0
    прикольная тема - столкнулись "промышленники", "студенты" и "кустарщики."

    Боюс меня счас закидают большими катяхами..... но - мне кажеться при всех исходных - все зависит от количества подключений - чем их больше, тем больше перевес в пользу PostgreSQL.

    добавлено через 1 минуту
    Чисто интуитивное мнение, не подкрепленное серезным эксперементом с повторением всех условий.
     
  14. хочу_вот_сказать

    хочу_вот_сказать Активный участник

    8.402
    1
    RubiN, чем лучше? ну ка факты нам, факты!

    "с Postgre были траблы,которые решались с MySQL" - эта пять! вы сами-то поняли что написали? :)
     
  15. ilya-79

    ilya-79 Активный участник

    4.933
    1
    ага, точно подмечено.... Сижу, читаю, молчу....
     
  16. RubiN

    RubiN Активный участник

    5.531
    31
    форум, cgi,под апачем, на FreeBSD+Postgre, проработал какое-то время, но с определенного момента резко увеличилось время загрузки первой страницы. В процессе ковыряния выяснилось что в работе оптимизатора произошел какой-то сбой, подробнее не разбирался, переставил на MySQL и забыл.
     
  17. OpenBoy

    OpenBoy Активный участник

    21.670
    0

    Чтож там за форум такои.. что его понадобилось оптимизировать, все 5 табличек)).

    Кстати- очень неконструктивно, решать проблеммы сменой ПО. Если бы оно было прорпиетарным - этого бы сделать наврятли удалось так просто.... а опыта - как небыло так инет.
     
  18. AlTk

    AlTk Читатель

    10.699
    0
    OpenBoy,
    "... Кстати- очень неконструктивно, решать проблеммы сменой ПО ..."
    я бы даже сказал, просто непрофессионально.
    правда однажды у меня была ситуация, что в процессе разработки мы наткнулись на баг в MS SQL, который официально обещали исправить только в следующем сервис паке. так что мы тупо сидели и ждали его выхода.

    добавлено через 1 минуту
    OpenBoy,
    "... Чтож там за форум такои.. что его понадобилось оптимизировать, ..."
    да скорее всего хрень какая-то типа семестровой.
     
  19. RubiN

    RubiN Активный участник

    5.531
    31
    непрофессионально зато быстро, что в условиях дефицита времени дает результат. самому не нравится так решать вопросы, но по другому сейчас никак
     
  20. OpenBoy

    OpenBoy Активный участник

    21.670
    0

    Очень даже как, есть такая штука - называетса тестирование перед вводом в эксплуатацию). С однои стороны - не совсем логично, тестировать базу данных с 5 таблицами... зато полезно - много нового узнаеш, и сможеш таки справляться с такими багами - более продвинутыми средствами.
    К слову сказать - я тоже не увлекаюсь тестами, но всетаки еще не разу не менял софт, если чтото вдруг заработало не так.
     
  21. AlTk

    AlTk Читатель

    10.699
    0
    RubiN,
    опять несете херню. ну вот скажите мне, например, как вы на трех тысячах машин будете заменять ПО?
     
  22. RubiN

    RubiN Активный участник

    5.531
    31
    даже спорить не хочу, нафига мне на 3 тысячи? не те у меня масштабы
    я не против, даже за, кто бы только мне людей в отдел добавил.
    Кстати, от темы отклонились сильно, на личности перешли.
    2AlTk,IMHO (ИМХО), для большинства задач MySQL вполне достаточен и лучше Postgre тем - что с ним проще работать,лично для меня
     
  23. AlTk

    AlTk Читатель

    10.699
    0
    RubiN,
    я все понял.
    Вы идиот
     
  24. RubiN

    RubiN Активный участник

    5.531
    31
    --
     
  25. OpenBoy

    OpenBoy Активный участник

    21.670
    0
    он просто такой же студент как и я, по сути, не нашедший пока по каким то причинам - столь же конкретного как ты применения своему мозгу). За что ты его так... Надо фактами, теорией давить. Если получиться)