Какой самый большой недостаток <вашей любимой базы данных>? - PullRequest
4 голосов
/ 23 сентября 2008

У всех нас есть наша любимая база данных. Если вы объективно посмотрите на выбранную вами базу данных, какие у нее недостатки и что можно улучшить?

Правила:

  • Один ответ за недостаток с;
  • краткое описание ограничения с последующим;
  • более подробное описание, объяснение того, как это можно сделать лучше, или пример другой технологии, не имеющей того же ограничения.

  • Не уничтожайте базы данных, которые вы не использовали широко. Легко делать удары по другим технологиям, но мы хотим учиться на вашем опыте, а не на ваших предубеждениях.

Ответы [ 20 ]

5 голосов
/ 23 сентября 2008

Базы данных Oracle довольно дороги

Oracle делает то, что делает хорошо, но затраты на лицензирование ужасны. Это улучшилось с выпуском Oracle XE, но его ограничения означают, что это ограничение роста для вашего решения.

2 голосов
/ 23 сентября 2008

База данных Microsoft SQL Server 2005

Дефект Отсутствие "ВСТАВИТЬ ИЛИ ОБНОВИТЬ"

Описание

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

Этого не происходит с MySQL или SQLServer 2008.

2 голосов
/ 23 сентября 2008

База данных PostgreSQL

Дефект Нет SQL Profiler

Мы спросили разработчиков об этом на недавней конференции, и я понимаю, что теперь они хотят это реализовать.

2 голосов
/ 23 сентября 2008

Мне нравится гибкость последовательностей в Oracle по сравнению с другими автоинкрементами баз данных, но невозможность установить seq.nextval в качестве значения по умолчанию для столбца pk несколько раздражает, и исправление должно быть тривиальным.

1 голос
/ 23 сентября 2008

База данных MySQL

Дефект Внешние ключи поддерживаются только в некоторых типах таблиц

Описание

Достаточно сказано. Это имеет очевидные последствия для обслуживания.

Из руководства MySQL

На определения внешних ключей распространяются следующие условия:

  • Обе таблицы должны быть таблицами InnoDB, и они не должны быть временными таблицами.

и здесь :

Для механизмов хранения, отличных от InnoDB, MySQL Server анализирует синтаксис FOREIGN KEY в инструкциях CREATE TABLE, но не использует и не сохраняет его.

Этого не происходит с другими крупными БД.

1 голос
/ 23 сентября 2008

База данных Microsoft SQL Server 2005

Дефект Плохо реализованный интерфейс

Описание

Студия управления SQL Server не предлагает удобного пользовательского интерфейса:

  • Поведение табуляции странно: вы всегда ищете нужную вкладку
  • Сохраняет сбой на 64-битных версиях
  • Отсутствуют некоторые функции предыдущей версии, такие как обзор грантов хранимых процедур

Этого не происходит с версией 2000.

1 голос
/ 23 сентября 2008

База данных Microsoft SQL Server

Дефект Огромная стоимость лицензирования

Описание

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

Этого не происходит с MySQL или PostgreSQL.

1 голос
/ 23 сентября 2008

База данных MySQL
Дефект Сервер запустится с поврежденными таблицами
Описание

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

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

1 голос
/ 23 сентября 2008

База данных MySQL 5.0.x и выше

Дефект Ошибки репликации кольца приводят к несогласованности данных на разных узлах

Описание

Самая серьезная проблема в производстве, с которой мы сталкиваемся в данный момент, заключается в том, что в кольце MySQL само кольцо выдает ошибку и прекращает репликацию.

Построение кольца (или Master-Master-репликация) возможно, начиная с 5.x.x: вы объединяете базы данных в «кольцо», чтобы реплицировать данные друг с другом. Каждый узел базы данных получает все изменения от всех других узлов.

Мы предполагаем, что ошибка кроется в автоинкрементах-сбоях. Это также известно из обычной репликации, но в новой версии нет сообщений об ошибках sufficinet в журнале ошибок. Я настоятельно рекомендую не использовать эту функцию в MySQL, если проблемы здесь не устранены.

1 голос
/ 23 сентября 2008

База данных Oracle

Дефект Не слишком долго обрабатывал длинный тип данных

Описание

У Oracle был только длинный тип данных до 9i (я полагаю), и в этот момент он был объявлен устаревшим в пользу LOB. Однако существует тонна кода, которая все еще имеет длинные и все связанные ограничения. Самым большим из них было то, что в каждой таблице мог быть только один длинный столбец, и он должен быть в конце столбцов. Смотрите здесь для более исчерпывающего списка ограничений по длинным.

...