Страница 1 из 2
сравнение баз данный, недостатки, достоинства
Добавлено: 22 мар 2005, 14:02
Ринат
добрый день! Уважаемые посетители, дайте ссылки или расскажите, про недостатки (преимущества соответственно) баз данныйх, MySQL, MS SQL, Oracle, возникла потребность с выбором БД, буду очень признателен. спасибо
Добавлено: 22 мар 2005, 15:24
Absurd
MySQL - Для веб - форумов с одной таблицей и допустимостью потери информации.
MS SQL - Для бизнес-проектов среднего размера. Когда один пользователь модифицирует таблицу, блокируется сама таблица и все ее индексы, так что все кто хотят получить данные из этой таблицы стоят на паузе и ждут. Так что ее надо использовать оптимально где-то для 30 пользователей. В комплект входят довольно приятные GUI утилиты(M$ все-таки), система примерно в три раза проще для освоения, чем Оракл. Довольно приятный диалект SQL. Гармонично интегрирована в архитектуру WinNT сервера.
Oracle - для очень больших баз данных. Там используется многоверсионная система работы с данными, так что каждый пользователь модифицирует только свою версию данных, а потом фиксирует (commit) изменения, чтобы другие пользователи их увидели. Пока он не зафиксирует изменения, все другие пользователи будут получать предыдущую версию данных. В результате можно читать данные, пока другие пользователи их модифицируют. Это позволяет эффективно работать с очень большим количеством пользователей. GUI утилиты (например TOAD) надо покупать отдельно за большие деньги, иначе придется пользоваться консольными утилитами в стиле Уникс. Запускать и писать программы под него можно на той же конфигурации, что и для MSSQL, но для промышленной эксплуатации железо под нее нужно очень дорогое.
Добавлено: 22 мар 2005, 16:24
Ринат
спасибо за ответы, доступно и понятно, юзаю My SQl

)
Добавлено: 22 мар 2005, 17:31
Absurd
спасибо за ответы, доступно и понятно, юзаю My SQL
MS SQL проще и попсовей для новичка, т.к там гуевые визарды.
У MySQL приемущества не в простоте:
1) Бесплатность
2) Он стоит у большинства хостеров.
Добавлено: 22 мар 2005, 18:37
Yurich
Absurd писал(а):MySQL - Для веб - форумов с одной таблицей и допустимостью потери информации.
Потерять информацию легко используя любой SQL сервер. В плане надежности MySQL не хуже, а в некоторых случаях даже лучше чем другие. По поводу "...форумов с одной таблицей..."... Я бы сказал от "...форумов с одной таблицей..." и до "...очень больших баз данных...".
Все зависит от Вашего умения настраивать, оптимизировать и администрировать SQL Server.
Absurd писал(а):
MS SQL - Для бизнес-проектов среднего размера. Когда один пользователь модифицирует таблицу, блокируется сама таблица и все ее индексы, так что все кто хотят получить данные из этой таблицы стоят на паузе и ждут. Так что ее надо использовать оптимально где-то для 30 пользователей.
:lol: Absurd, MSSQL, также как и Sybase
лочит страницами! И только тогда когда количество залоченных страниц превышает определенный параметр лочится вся таблица!
Absurd писал(а):
Oracle - для очень больших баз данных. Там используется многоверсионная система работы с данными, так что каждый пользователь модифицирует только свою версию данных, а потом фиксирует (commit) изменения, чтобы другие пользователи их увидели. Пока он не зафиксирует изменения, все другие пользователи будут получать предыдущую версию данных. В результате можно читать данные, пока другие пользователи их модифицируют. Это позволяет эффективно работать с очень большим количеством пользователей.
Кстати, мультиверсионниками являются не только Oracle, но и Interbase/Firebird, а также и MySQL... 8)
Absurd писал(а):
GUI утилиты (например TOAD) надо покупать отдельно за большие деньги, иначе придется пользоваться консольными утилитами в стиле Уникс. Запускать и писать программы под него можно на той же конфигурации, что и для MSSQL, но для промышленной эксплуатации железо под нее нужно очень дорогое.
Ну и по поводу утилит... К MySQL идет куча различных
бесплатных утилит. Работает он на множестве различных платформ. Ну и требования к железу у него небольшие

Хотя конечно в разумных пределах, чем больше, тем лучше.
Добавлено: 22 мар 2005, 20:27
AiK
MSSQL, также как и Sybase лочит страницами! И только тогда когда количество залоченных страниц превышает определенный параметр лочится вся таблица!
Отставить макать капитана! ©

Точно с какой версии не скажу, но и в Syabase 12.5 и в MS SQL 2000 уровень блокировки может меняться от записи до БД. И так, для справки, между страницей и таблицей есть ещё и экстент.
Добавлено: 22 мар 2005, 22:16
Yurich
AiK писал(а):Отставить макать капитана! ©

Точно с какой версии не скажу, но и в Syabase 12.5 и в MS SQL 2000 уровень блокировки может меняться от записи до БД. И так, для справки, между страницей и таблицей есть ещё и экстент.

Правильно, я имел ввиду только то что table-level locking далеко не самый низкий уровень в MSSQL, а page-level locking по-моему до сих пор используется по умолчанию.
Добавлено: 23 мар 2005, 11:27
Absurd
Absurd, MSSQL, также как и Sybase лочит страницами!
Ну и как мне сделать full table scan, если там залочена страница? А если index залочен, и мне нужно сделать join этой таблицы?
Кстати, мультиверсионниками являются не только Oracle, но и Interbase/Firebird
Ну да... Interbase. Еще Postgres. Но наше мнение про оные БД не было спрошено.
а также и MySQL...
Чего-то я не видел, чтобы под MySQL кто-то фиксировал транзанкции. Как-то я делал древовидную доску обсуждений, дык там надо было сделать два или три запроса для добавления одной записи. Ну и поместил я эти запросы между begin...commit. Чего-то он у меня заругался, что он не хочет делать begin. Я полез в инет, и узнал, что там нужны таблицы InnoDB, а не MyISAM. Ну сделал я InnoDB. А потом у хостера InnoDB не захотели создаваться. Так скрипт и работал два года. Если бы у кого-то один запрос отвалился посередине, то база данных бы посыпалась. Я это еще я, которому не влом разбираться что такое MyISAM, а что такое InnoDB.
Потом я имел дело с кучей скриптов, где надо было создавать новую таблицу для заказов каждый месяц, и прописывать в скрипте название новой таблицы; Бызы данных без индексов; Скрипты где вместо drop table делали удаление файлов с таблицей итд. И все под MySQL. Кстати, зачем нужна такая (сравнительно) трудоемкая операция удаления файла? Может, в какой-то версии MySQL не работал оператор drop ?
Добавлено: 23 мар 2005, 11:50
DeeJayC
Absurd писал(а):Absurd, MSSQL, также как и Sybase лочит страницами!
Ну и как мне сделать full table scan, если там залочена страница?
Убийца! (извините, не удержался)
Добавлено: 23 мар 2005, 12:03
Ринат
вобщем, MySQL использую, стоит у болшинства хостеров, по поводу одной таблицытоже не согласен, зависит от того, кто БД занимается, по поводу потери информации, просто регулярно делать резервную копию (скрипт написать, парсить БД и выкладывать в файл), MS SQL Oracle никогда дела не имел, пока, такие дела
пишите, спасибо за ответы