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

Статус
В этой теме нельзя размещать новые ответы.

svi2009

Местный
Регистрация
13 Дек 2009
Сообщения
8
Реакции
0
Credits
38
Здравствуйте!

Помогите с выбором базы данных за таких условий:
- к-во записей: 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 кодировке (кирилица)

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

master_devel

Турист
Регистрация
26 Сен 2012
Сообщения
4
Реакции
0
Credits
8
ORACLE без вариантов. PL SQL паскалеподобный язык. Очень прост в изучении.
 

moldovanin

Турист
Регистрация
26 Ноя 2009
Сообщения
4
Реакции
0
Credits
8
Я бы поеркомендовал ms sql, последние года явно доганяет Oracle, а может и обогнали уже. На мега обьемах не работал, но 50 лямов потянет точно
 

BorovikSV

Местный
Регистрация
13 Дек 2010
Сообщения
5
Реакции
0
Credits
24
если руки и голову приложить - то NexusDB самый лучший вариант.
Год назад пришлось с >200 млн.записей столкнуться.
Размер базы приближался к террабайту. После реализации более продуманной структуры базы и самостоятельной реализации некоторых индексов и типов некоторых полей (благо Nexus позволяет свои примочки использовать) размер БД уменьшился в раз 20. Средняя скорость выборки по "like" - в районе секунды (Благодаря своему индексу)
 

maxim220

Турист
Регистрация
18 Июн 2006
Сообщения
52
Реакции
0
Credits
78
Заметил что вопрос задается регулярно. Рекомендую MS SQL Server. и про настройку индексов не забывать и.... память на сервер поставить на 2 Гб, а 16 хотя бы.
 

Misha_T

Турист
Регистрация
25 Июн 2006
Сообщения
6
Реакции
0
Credits
22
На теперешнем железе - любая потянет
лучшая база - та, которую ты сам лучше знаешь, кривыми руками можно уложить хоть оракл хоть MSSQL :)
у меня работала база с > 100 млн на Firebird на стареньком сервере (сейчас ноут у меня мощнее :) )
более 50 активных пользователей, полёт нормальный без тормозов.
 

dalx

Местный
Регистрация
17 Фев 2010
Сообщения
6
Реакции
0
Credits
25
самая быстрая в простых запросах - мускуль. (к тому же легковесная и не гемморойная). за ней - я бы выбрал постгрейс.
оракл - тяжеловат... и миллион записей 50 миллионов - это вобщем то еще не её "хлеб" ;) .
 

qpash

Турист
Регистрация
15 Янв 2011
Сообщения
11
Реакции
0
Credits
22
Не знаю, у меня SQL 2012 и нет проблем с такими объемами
 

azl

Местный
Регистрация
4 Апр 2006
Сообщения
27
Реакции
46
Credits
81
Думаю, Firebird справится с задачей.
 

S_Gur

Premium
Регистрация
26 Фев 2007
Сообщения
76
Реакции
13
Credits
1,309
Неправильная постановка вопроса. Зависит от правильной разработки структуры и индексов. 30 полей в записи - сразу возникают сомнения в правильной нормализации.
 

azl

Местный
Регистрация
4 Апр 2006
Сообщения
27
Реакции
46
Credits
81
Да ничего там не возникает. Обычный справочник, об этом сказано в первом посте.
 
Статус
В этой теме нельзя размещать новые ответы.