Нужна помощь в выборе сервера базы данных - PullRequest
4 голосов
/ 25 февраля 2011

Добрый день всем.

Недавно мне было поручено разработать приложение для автоматизации некоторых аспектов торговли акциями. Во время работы над первоначальной архитектурой возникла дилемма базы данных. Мне нужен быстрый движок базы данных, который может очень быстро обрабатывать огромные объемы данных. Я довольно опытный в общем программировании, но я никогда не сталкивался с задачей разработки архитектуры базы данных с высокой нагрузкой. В одном из моих проектов я разработал простую схему базы данных MSSQL с несколькими взаимосвязями «многие ко многим», но это все.

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

Особенности проекта следующие:

  • ОС: семейство Windows NT (Server 2008/7)
  • Основная платформа: .NET с C #
  • Структура базы данных: одна таблица для хранения первичных элементов и две или три таблицы с внешними ключами для первой таблицы для хранения дополнительной информации.
  • Требования к базе данных SELECT: требуется сверхбыстрый выбор по внешним ключам и по комбинации внешнего ключа и одного из столбцов (предположительно, DATETIME)
  • Требования для вставки базы данных: чем быстрее, тем лучше:)

Если будет существенное увеличение производительности, некоторые части могут быть написаны на C ++ с управляемыми интерфейсами для остальной части системы.

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

РЕДАКТИРОВАТЬ: мне нужно будет вставлять 3-5 строк в 2 таблицы примерно один раз в 30-50 миллисекунд, и мне нужно будет делать SELECT с предложениями 0-2 WHERE с аналогичной скоростью.

Ответы [ 4 ]

3 голосов
/ 25 февраля 2011

Технология не имеет значения.Это касается аппаратного обеспечения.

Требуется сверхбыстрый выбор по внешним ключам и по комбинации внешнего ключа и одного из столбцов (предположительно, DATETIME)

Так что вам нужно что-токак компьютерная система supermicro с 72 дисками, заполненная SSD и 256 ГБ памяти в качестве кеша.Просто как тот.При необходимости добавляйте процессоры.

Проблема в том, что это ДОРОГО, но в конце базы данных о IO.Точка.

В качестве альтернативы вы можете воспользоваться базой данных потока кликов (KD +) и заплатить 30 000 долларов США за оборудование, которое они запрашивают за 20 000 долларов США. Для запуска самой маленькой лицензии на программное обеспечение.

Я знаю, это звучит сложно, но скорость работы базы данных - если вы не делаете глупостей, снижающих производительность, - зависит от оборудования.PRettym UCH бюджет IOPS (независимый IOPS в секунду).И не о программном обеспечении.

1 голос
/ 25 февраля 2011

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

Но опять же. Три таблицы ... Вы могли бы почти сделать это в Access.

То, что вы не указали , указывает количество ожидаемых операций чтения и вставки. Наша бедная маленькая база данных MySQL выполняет миллионы запросов в день для нашего сайта. Лишь небольшая часть этого - вставки и обновления (операторы DML), поэтому MySQL очень хорошо справляется с этим, но количество запросов, их сложность и объем данных являются более важными данными, чем количество таблиц.

0 голосов
/ 25 февраля 2011

Если это не обязательно должен быть SQL, возможно, система типа Cassandra будет хорошим вариантом.Такие базы данных используются высокочастотными сайтами, такими как социальные сети.Не знаю, как он устанавливается под Windows-сервером.

0 голосов
/ 25 февраля 2011

Если у вас уже есть опыт работы с Sql Server, я бы предложил придерживаться его в той или иной форме. Кроме того, у Sql Server и .NET хорошая синергия (очевидно), потому что они оба являются продуктами Microsoft.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...