The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Требуются мнения


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Date: Wed, 26 Jun 2002 08:59:22 +0000 (UTC)
From: Victor Wagner <vitus@communiware.ru>
Subject: Требуются мнения

Serge Droutchin <sir@iserv.volga.ru> wrote:
SD> Обчий Q!

SD> И вопрос тоже общий.

SD> Мне некогда подробно и самому разбираться сразу в двух пакетах
SD> баз данных: MySQL и Postgresql.

SD> Я собираюсь держать там :)  административную информацию
SD> о сетях, компьютерах, пользователях, статистику работы,
SD> статистику инета и т.п. Часть информации скорее всего
SD> будет визуализироваться через ВЕБ.

SD> Помогите сделать правильный выбор или просто перечислите резоны.
SD> Тока, умоляю, без войн :)

Резоны:

В пользу mySQL 

- маленький и быстрый при ограниченном числе клиентов
 (в случае web-интерфейса клиентом является каждая запущенная
 копия backend-сервера или каждый работающий CGI-скрипт)


В пользу PostgreSQL

- Более полно поддерживает язык SQL. Если ты возьмешь книгу Мартина
Граббера "Введение в SQL", и будешь по ней пытаться составить запросы,
достающие из базы нужную тебе информацию, то в PostgreSQL отработает
любой, а в mySQL шаг вправо/шаг влево - расстрел. Поддерживается очень
ограниченное подмножество SQL, достаточное для многих случаев, но для
столь же многих недостаточное.

- Нормальные транзакции. Поскольку у тебя статистика, вероятно
 будет собираться realtime,  в базу ее будут писать какие-то скрипты.
 Причем скорее всего скрипту придется запихнуть информацию в несколько
 таблиц. В mySQL в процессе этой операции либо ты заблокируешь
 все эти таблицы, и не сможешь посмотреть что-либо через web-интерфейс,
 пока не закончится вся операция, либо будешь работать без транзакций,
 и увидишь неконсистентную информацию.

 В postgresql пока один клиент лопатит базу в рамках транзакции он видит
 все что успел натворить, а все остальные видят базу в том виде, как
 она была перед началом транзакции, пока клиент не скажет commit.
 Критично то, что они ее при этом ВИДЯТ.
 
- Поддержка целостности данных.

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

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

Да, естественно, рассматриваются последние стабильные версии
PostgreSQL 7.2.1 и MySQL не помню какой.

-- 
http://www.communiware.ru                     http://www.ice.ru/~vitus

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>



Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру