База данных на 1 млн. записей

Статус
Закрыто для дальнейших ответов.

svi2009

New member
Регистрация
13.12.2009
Сообщения
8
Реакции
0
Баллы
1
Возраст
44
Здравствуйте!

Помогите с выбором базы данных за таких условий:
- к-во записей: 1 млн. (в планах до 50 млн.)
- к-во полей: до 30
- информация: текст (списки людей + информация о них);
- задачи: первостепенное - поиск и выборки, второстепенное - редактирование;
- ключевой момент: первостепенный - скорость выборки, второстепенный - размер (в границах 10-30 Гб)
- ОС: Windows
- обслуживание: программа на Delphi;
- локализация: локальная;
- подключение: универсализация (программа + база => скопировал в на другой ПК и запустил без дополнительных настроек и драйверов)

На сегодня проработал 2 варианта:
1) NexusDB - импортнул 300 тыс. записей, проиндексировал по Фамилии
плюс - неплохая скорость выборки на 300 тыс. записях (точный запрос "=" - порядка 10 с., условный "like" - порядка 30 с.) (норма ...)
минус - база уже переваливает за 3 Гб, т.е. на 50 млн. записях это будет порядка 500 Гб (перебор ...)

2) SQLite - импортнул 1 млн. записей, проиндексировал по Фамилии
плюс - небольшой размер базы (около 600 Мб), т.е. на 50 млн. записях это будет порядка 30 Гб (норма ...)
плюс - отличная скорость выборки при точном запросе ("=") - 3-5 с
(супер ...)
минус - при условной выборке ("like") скорость неприемлемая - порядка 5 мин. (перебор ...)

База формируется из txt-файла (экспорт из БД Cronos).

Может я чего-то не учел в SQLite. Под Delphi подключался с помощью DISQLite3 v2.4.5 from Yunga ( ), импортировал txt-файл SQLite Maestro v12.1.0 в ANSI кодировке (кирилица)

Помогите советом или подскажите еще варианты реализации задачи.
 

МарковаЕкатерина

Active member
Команда форума
Moderator
Premium
Регистрация
23.08.2012
Сообщения
492
Реакции
97
Баллы
28
Возраст
47
Местоположение
РФ, Москва
Native language | Родной язык
Русский
А чем не подходят более известные варианты? Например MS SQL?
 

master_devel

New member
Регистрация
26.09.2012
Сообщения
4
Реакции
0
Баллы
1
ORACLE без вариантов. PL SQL паскалеподобный язык. Очень прост в изучении.
 

moldovanin

New member
Регистрация
26.11.2009
Сообщения
4
Реакции
0
Баллы
1
Я бы поеркомендовал ms sql, последние года явно доганяет Oracle, а может и обогнали уже. На мега обьемах не работал, но 50 лямов потянет точно
 

BorovikSV

New member
Регистрация
12.12.2010
Сообщения
5
Реакции
0
Баллы
1
Native language | Родной язык
Русский
если руки и голову приложить - то NexusDB самый лучший вариант.
Год назад пришлось с >200 млн.записей столкнуться.
Размер базы приближался к террабайту. После реализации более продуманной структуры базы и самостоятельной реализации некоторых индексов и типов некоторых полей (благо Nexus позволяет свои примочки использовать) размер БД уменьшился в раз 20. Средняя скорость выборки по "like" - в районе секунды (Благодаря своему индексу)
 

maxim220

Member
Регистрация
17.06.2006
Сообщения
52
Реакции
0
Баллы
6
Местоположение
Russia, SPb
Заметил что вопрос задается регулярно. Рекомендую MS SQL Server. и про настройку индексов не забывать и.... память на сервер поставить на 2 Гб, а 16 хотя бы.
 

Misha_T

New member
Регистрация
25.06.2006
Сообщения
6
Реакции
0
Баллы
1
Возраст
51
Местоположение
Lviv, Ukraine
Native language | Родной язык
Русский
На теперешнем железе - любая потянет
лучшая база - та, которую ты сам лучше знаешь, кривыми руками можно уложить хоть оракл хоть MSSQL :)
у меня работала база с > 100 млн на Firebird на стареньком сервере (сейчас ноут у меня мощнее :) )
более 50 активных пользователей, полёт нормальный без тормозов.
 

dalx

New member
Регистрация
17.02.2010
Сообщения
6
Реакции
0
Баллы
1
самая быстрая в простых запросах - мускуль. (к тому же легковесная и не гемморойная). за ней - я бы выбрал постгрейс.
оракл - тяжеловат... и миллион записей 50 миллионов - это вобщем то еще не её "хлеб" ;) .
 

МарковаЕкатерина

Active member
Команда форума
Moderator
Premium
Регистрация
23.08.2012
Сообщения
492
Реакции
97
Баллы
28
Возраст
47
Местоположение
РФ, Москва
Native language | Родной язык
Русский
<есплатная версия MS SQL - идеальный вариант.
 

qpash

New member
Регистрация
15.01.2011
Сообщения
11
Реакции
0
Баллы
1
Не знаю, у меня SQL 2012 и нет проблем с такими объемами
 

nike1968

New member
Регистрация
10.01.2013
Сообщения
3
Реакции
0
Баллы
1
Oracle для больших объемов.
 

МарковаЕкатерина

Active member
Команда форума
Moderator
Premium
Регистрация
23.08.2012
Сообщения
492
Реакции
97
Баллы
28
Возраст
47
Местоположение
РФ, Москва
Native language | Родной язык
Русский

azl

Member
Регистрация
04.04.2006
Сообщения
27
Реакции
45
Баллы
13
Местоположение
Луганск
Native language | Родной язык
Русский
Думаю, Firebird справится с задачей.
 

S_Gur

Premium
Premium
Регистрация
26.02.2007
Сообщения
38
Реакции
4
Баллы
8
Возраст
56
Местоположение
Moscow
Native language | Родной язык
Русский
Неправильная постановка вопроса. Зависит от правильной разработки структуры и индексов. 30 полей в записи - сразу возникают сомнения в правильной нормализации.
 

azl

Member
Регистрация
04.04.2006
Сообщения
27
Реакции
45
Баллы
13
Местоположение
Луганск
Native language | Родной язык
Русский
Да ничего там не возникает. Обычный справочник, об этом сказано в первом посте.
 

KZ_3D

New member
Регистрация
08.05.2014
Сообщения
1
Реакции
0
Баллы
1
The ORACLE is a perfect solution for this case.
 

IPS

New member
Регистрация
19.09.2009
Сообщения
14
Реакции
0
Баллы
1
Фаинберн - без каких либо вопросов справляется, стоит на работе, около 600 пользователей каждый день работают. MS SQL притормаживает.
 

S_Gur

Premium
Premium
Регистрация
26.02.2007
Сообщения
38
Реакции
4
Баллы
8
Возраст
56
Местоположение
Moscow
Native language | Родной язык
Русский
Надо очень постараться, чтобы база на 1 000 000 записей притормаживала на MS SQL Server
 

Eidos

New member
Регистрация
21.05.2011
Сообщения
3
Реакции
0
Баллы
1
Oracle - это решение для больших данных!
 

йцукеурщл

New member
Регистрация
30.05.2014
Сообщения
13
Реакции
3
Баллы
3
оракл стоит столько сколько не заработает данное ПО
лям записей вытянет и бесплатная БД от микрософт
 

МарковаЕкатерина

Active member
Команда форума
Moderator
Premium
Регистрация
23.08.2012
Сообщения
492
Реакции
97
Баллы
28
Возраст
47
Местоположение
РФ, Москва
Native language | Родной язык
Русский

Alexsob

New member
Регистрация
21.09.2007
Сообщения
12
Реакции
3
Баллы
3
Native language | Родной язык
Русский
ORACLE штука весьма хорошая, но если записей миллион-другой, то можно обойтись и FireBird.
Если же перспективы роста данных большие, если развернутая логика обработки данных, которую недурно бы разместить на сервере, то "большие" СУБД, конечно же, вне конкуренции. Поработав на Oracle, начиная ваять даже маленькое приложение в небольшой СУБД, понимаешь, что не хватает многих фишек. Хотя у Firebird также есть хранимые процедуры и триггеры, но PL/SQL все-таки покруче будет.
 

werful

New member
Регистрация
24.05.2009
Сообщения
24
Реакции
1
Баллы
3
Возраст
38
Не знаю, по специфики работы, приходится иметь дело с большими объемами данных, использую mysql и все отлично работает
 

fd00ch

New member
Регистрация
09.04.2009
Сообщения
11
Реакции
0
Баллы
1
сделать можно и с SQLite
а для быстрого like использовать FTS от того же DI
 
Статус
Закрыто для дальнейших ответов.
198 144Темы
635 115Сообщения
3 618 408Пользователи
crankychildНовый пользователь
Верх