2016-02-12 3 views
-2

Я работаю над веб-сайтом, у которого есть требование хранить большое количество данных на одной таблице. Он будет составлять более 100 тыс. Записей в месяц и хранится не менее 5 лет. Это будет около 100k × 60 месяцев = 6 миллионов записей.Выбор соответствующей базы данных

Мой вопрос - это лучшая система СУБД, которая может обрабатывать данные такого типа? Mysql/Oracle/PostgreSQL?

+2

Этот вопрос требует мнения, здесь нет конкретного ответа. –

+0

Для этого вопроса есть сайт StackExchange: http://softwarerecs.s.stackexchange.com/ – pjd

ответ

3

Прежде всего, 6M записей не очень много , поэтому в эти дни это не должно быть проблемой для каких-либо СУБД основного уровня. Тем не менее, я вижу два аспекта:

1) Оценка площади - приблизительное количество пространства. Для этого вы можете вставить в таблицу несколько записей, которые будут похожи на ваши, и экстраполировать их на записи 6M. Например. (Я использовал SQL Server, но это должно быть доступно для другой СУБД, таких как MySQL):

Записи выглядит следующим образом (4 целых и VARCHAR)

103 1033 15 0 The %S_MSG that starts with '%.*ls' is too long. Maximum length is %d. 

Я вставленный о строках 1M в использование таблиц и пробелов возвращает что-то вроде:

rows reserved  
1008656 268232 KB 

Итак, это будет около 1,5 ГБ для рядов 6М.

2) Оценка использования - уже указано chanaka wije. Если вы выполняете только SELECT или INSERT, специальных функций не требуется (например, поддержка многих транзакций за единицу времени).

Кроме того, в целях повышения SELECT производительности, вы должны смотреть в разбиении (по времени вашего дела) - см here, here или here.

+0

Спасибо за ваши усилия. im глядя точно, что вы ответили Спасибо @Alexei –

1

зависит от использования вашей таблицы, независимо от того, хотите ли вы вставлять или часто ли вы выбираете, я использую таблицу для хранения просмотров веб-страниц, 4 миллиона записей в месяц и я использую mysql, также каждые 6 месяцев. Я делаю обрезку, никаких проблем до сих пор, если вы хотите использовать выборочные запросы, используйте правильный движок базы данных, например, Innodb имеет блокировку на уровне строк, а MyISAM имеет блокировку на уровне таблиц

+0

. Вы также можете использовать 'Amazon RDS' –

+0

. Мне нужно выполнить простую операцию обновления и удаления вставки без каких-либо дополнительных функций. и спасибо за ан. –

-2

Это хороший вопрос. Помимо того, что было предложено здесь, я думаю, что одним из вопросов, который следует рассмотреть, будет то, как вы подключаетесь к базе данных. Сам Oracle может хорошо масштабироваться, только если вы используете пул соединений (ограниченное фиксированное количество подключений). Если вы все время подключаетесь, пикируя некоторые данные и отключаясь, не используйте Oracle. Серьезно, идите в MySQL.

И если ваше приложение очень простое, рассмотрите наименее дорогой вариант. Не бросайте в нее Oracle, потому что это «лучшее там».

+0

Я думаю, что MySQL лучше для меня. Спасибо за ответ. –

Смежные вопросы