Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Какое железо мне надо? И как лучше организовать? 150 миллионов записей. 
:(
    Опции темы
Vasay
Дата 17.4.2009, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: нет
Всего: 73



Есть у меня такая информация:

имя человека
дата
доп информация.

Записей 150 миллионов. Нужно делать селекты: Вывести все записи по имени, или по дате. 

Думаю имя стоит хешировать в инт и искать по инту.

Вопрос - какое железо мне надо для решения этой задачи? И как оптимально спроектировать базу и запросы, чтоб получить максимальную производительность? 

И какую БД вообще выбрать для этой задачи? Может какая-то конкретная лучше адаптирована для решения подобных задач? 


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
Akella
Дата 18.4.2009, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 3
Всего: 329



Цитата(Vasay @  17.4.2009,  23:37 Найти цитируемый пост)
Вывести все записи по имени, или по дате. 

все - это в смысле все 150 миллионов записей показать на клиенте??

Добавлено через 4 минуты и 28 секунд
Цитата(Vasay @  17.4.2009,  23:37 Найти цитируемый пост)
И какую БД вообще выбрать для этой задачи?

Я бы выбрал oracle или mssql. Хотя не знаю, может и firebird подойдёт.
Тебе нужно однозначно выбирать серверную системную плату с hardware`ным raid контроллером. Выбрать винчестер.
PM MAIL   Вверх
Vasay
Дата 18.4.2009, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: нет
Всего: 73



Akella

Цитата

все - это в смысле все 150 миллионов записей показать на клиенте??


Не не сразу 150 миллионов, а с условием зависящим от имени и даты.


Цитата

Тебе нужно однозначно выбирать серверную системную плату с hardware`ным raid контроллером. Выбрать винчестер. 


Спасибо - пошел изучать вопрос.

Цитата

Я бы выбрал oracle или mssql. Хотя не знаю, может и firebird подойдёт.


А можно немного аргументов?
 


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
Akella
Дата 18.4.2009, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 3
Всего: 329



Ну oracle или mssql достаточно мощные и серъёзные СУБД. А firebird ещё и кроссплатформенная.
PM MAIL   Вверх
DimW
Дата 20.4.2009, 06:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 2
Всего: 44



Цитата(Akella @  18.4.2009,  16:32 Найти цитируемый пост)
А firebird ещё и кроссплатформенная.

точно так же как и Оракл.

Цитата(Vasay @  17.4.2009,  23:37 Найти цитируемый пост)
И какую БД вообще выбрать для этой задачи?

а ты уверен что тебе вообще СУБД нужна? Если да то ИМХО это должно быть безплатно и просто, mySQL возможно подойдет.
Хранение одной таблицы из трех полей задача ну ни как не MsSQL и Oracle. 
PM MAIL ICQ   Вверх
Vasay
Дата 20.4.2009, 08:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: нет
Всего: 73



Цитата

Если да то ИМХО это должно быть безплатно 


Я с этим тоже согласен smile Но даже среди бесплатных решений есть выбор.

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

Остался вопрос с железом. Сейчас решил потестить на своем ноутбуке (AMD x2 tl60, 2Gb озу) - посмотрю что будет (в данный момент вгоняю дамп базы)


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
Akella
Дата 20.4.2009, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 3
Всего: 329



Постгрес умеет работать с многоядерными процессорами ли с несколькими процессорами?
PM MAIL   Вверх
Vasay
Дата 20.4.2009, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: нет
Всего: 73



Akella

Умеет. 




--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
Vasay
Дата 21.4.2009, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: нет
Всего: 73



Вот думаю, стоит ли объединять винчи в RAID-0 если ОЗУ будет больше чем размер базы?

Может от греха подальше в RAID 1. Много ли я потеряю в скорости?


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
Vasay
Дата 22.4.2009, 02:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: нет
Всего: 73



Вообщем, поигрался на своей машине (на MySQL - т.к. она у меня уже была установлена). 

К сожалению вставка дампа при установленном индексе (char(16) на строку char(32), полученную, как md5 от строки в нижнем регистре)  шла очень медленно. Вставил 15 миллионов записей за сутки (без индекса вставил 70 миллионов за час, индекс делает уже восьмой час...). Поиск по char(32) в базе с 15 миллионами записей занимал сотые доли секунды (при наличие индекса). 

Сервер решил взять самый мощный, из тех что были: 
Core 2 Quad, 2x500 GB, 8 GB. Надеюсь, поиск будет достаточно быстрый.  

Такой конфиг сразу отбрасывает следующие ДБ (всвязи с тем, что платить за БД я, пока, не хочу):

1. Oracle Database 10g Express Edition 
т.к.
XE will store up to 4GB of user data, use up to 1GB of memory, and use one CPU on the host machine.

2. IBM DB2 Express-C
т.к.
Processor: 2 cores, Memory: 2 GB

3 MsSQL 2005 (по 2008 инфы по ограничениям не нашел :-( )
т.к.
SQL Server Express ориентирован на простые приложения и поддерживает только один процессор и 1 Гб оперативной памяти, размер базы данных ограничен 4 Гб.
За win на сервере надо платить (25$ или 35$ в месяц в зависимости от версии)

И так, выбор сейчас такой - 

1. PostgreSQL
2. MaxDB
3. MySQL  

Вопрос такой - что будет быстрее для моей простой задачи - селекта  из простенькой таблички, но с большим количеством записей?

Кстати, у этих бд нет никаких ограничений?


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
Akella
Дата 22.4.2009, 08:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 3
Всего: 329



А разве мускул абсолютно бесплатный?
PM MAIL   Вверх
DimW
Дата 22.4.2009, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 2
Всего: 44



Цитата(Akella @  22.4.2009,  08:14 Найти цитируемый пост)
А разве мускул абсолютно бесплатный? 

в сложившейся ситуации о мускуле как о "перспективе" теперь говорить сложно: тынц
на самом деле думал что безплатно.
PM MAIL ICQ   Вверх
Vasay
Дата 22.4.2009, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: нет
Всего: 73



DimW

Цитата

А разве мускул абсолютно бесплатный?


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

Цитата

в сложившейся ситуации о мускуле как о "перспективе" теперь говорить сложно: тынц
на самом деле думал что бесплатно. 


Мда, интересная новость. Хотя мускул продукт открытый, убить его не так просто.


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
DimW
Дата 22.4.2009, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 2
Всего: 44



Цитата(Vasay @  22.4.2009,  10:18 Найти цитируемый пост)
Хотя мускул продукт открытый, убить его не так просто.

достаточно просто прекратить поддержку, но вряд ли...

PM MAIL ICQ   Вверх
Poseidon
Дата 22.4.2009, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: нет
Всего: 133



Vasay, Оракл используй. 150 миллионов - это уже промышленные размеры (кстати, где ты столько набрал?). Тут не имеет значения что табличка простенькая. SELECT в любой БД будет быстрым, а вот вставка и переиндексация... Я бы Oracle выбрал.


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Общие вопросы по базам данных"
LSD
Zloxa

Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:

  • вопросам по СУБД для которых нет отдельных подфорумов
  • вопросам которые затрагивают несколько разных СУБД (например проблема выбора)
  • инструменты для работы с СУБД
  • вопросы проектирования БД
  • теоретически вопросы о СУБД

Данный форум не предназначен для:

  • вопросов о поиске разлиных БД (если не понимаете чем БД отличается от СУБД то: а) вам не сюда; б) Google в помощь)
  • обсуждения проблем с доступом к СУБД из различных ЯП (для этого есть соответсвующие форумы по каждому ЯП)
  • обсуждения проблем с написание SQL запросов, для этого есть форум Составление SQL-запросов
  • просьб о написании курсовой, реферата и т.п., для этого есть Центр помощи или фриланс биржа
  • объявлений о найме специалистов, для этого есть раздел Объявления о найме специалистов

Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение. ;)


Полезные советы:

При написании сообщения постарайтесь дать теме максимально понятное название. В теме максимально подробно опишите проблему. Если применимо укажите: название базы данных и версии (MySQL 4.1, MS SQL Server 2000 и т.п.); используемых язык программирования; способа доступа (ADO, BDE и т.д.); сообщения об ошибках.

Для вставки кода используйте теги [code=sql] [/code].

Литературу по базам данных можно поискать здесь.

Действия модераторов можно обсудить здесь.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | СУБД, общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1166 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.