Форум программистов, компьютерный форум, киберфорум
Visual C++: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
 Аватар для undiabler
5 / 5 / 0
Регистрация: 25.07.2012
Сообщений: 28

Какую базу данных выбрать?

13.12.2012, 16:19. Показов 2241. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Предположим существует 3 миллиона слов. На каждое слово приходится по 200-300 полей с дополнительной информацией. Необходимо выбрать базу данных которая бы обеспечивала фактически мгновенный доступ к любому из слов (слова в алфавитном порядке). Все действия выполняются на одной машине. Какую посоветуете выбрать базу данных для этой целы? Хранение в файлах уже не выход так как такие операции как добавление или удаление элемента уже сказываются на производительности.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.12.2012, 16:19
Ответы с готовыми решениями:

Какую Базу данных использовать для того чтобы написать не большую программу ?
Хотел узнать какую Базу данных использовать для того чтобы написать не большую программу ?

Какую базу данных выбрать
Здравствуйте. Пожалуйста, помогите советом. Есть несколько таблиц, каждая из которых соответствует своему устройству. Каждое устройство...

Какую выбрать базу данных?
Всем вечер добрый. Вопрос в название темы Какую выбрать БД. Основные критерии: 1. Что бы не надо было с программой переносить...

17
Антикодер
Эксперт функциональных языков программирования
1888 / 870 / 48
Регистрация: 15.09.2012
Сообщений: 3,088
18.12.2012, 12:02
Хочу только обратить внимание на MariaDB
0
6 / 6 / 1
Регистрация: 25.07.2011
Сообщений: 68
20.12.2012, 16:23
Подтверждаю. Прозрачная замена мускуля, устанавливается легко, работает шустро.
0
 Аватар для undiabler
5 / 5 / 0
Регистрация: 25.07.2012
Сообщений: 28
20.12.2012, 17:32  [ТС]
А что скажете про SQLite?
0
 Аватар для t1m0n
638 / 416 / 27
Регистрация: 03.11.2009
Сообщений: 1,855
20.12.2012, 20:01
SQLite портабельная база данных используется довольно часто

если можно mongo удобно для разработки
0
6 / 6 / 1
Регистрация: 25.07.2011
Сообщений: 68
20.12.2012, 20:20
На 3-х миллионах SQLite рискует загнуться.
Монга - не рискует, но тогда придется немного менять свои скрипты.
0
 Аватар для undiabler
5 / 5 / 0
Регистрация: 25.07.2012
Сообщений: 28
20.12.2012, 23:56  [ТС]
Да... вы были правы. ~2900000+ записей тянет дальше провисает и не возвращает на запрос ничего. Даже при попытках отключить многопоточный доступ для ускорения работы.
SQLite отпадает.

Такого рода еще вопрос, данные подгружаться будут в оперативную память и вся дальнейшая работа будет дальше уже идти независимо от бд. В принципе можно все организовать правильной файловой структурой. Так как базы данных обычно содержат кучу лишних функций. Есть ли какие то примеры или просто алгоритмы способствующие ускоренному поиску с выборкой (я имею ввиду такие вещи как like запросы или просто условия для некоторых столбцов). В принципе реализовав такие вещи у меня вообще отпадает проблема с базами данных.
0
6 / 6 / 1
Регистрация: 25.07.2011
Сообщений: 68
21.12.2012, 00:33
Все зависит от скриптов, и от рода задач. Я приведу пример сайта, работающего с пользователями, но думаю алгоритм ты поймешь.
Вот есть таблица users, для пользователей, она имеет много много полей, таких как логин, пароль, имя, фамилия, город, время активности, пол, и так далее.
Большой обьем данных будет.
И если делать например выборку по всем людям кто в онлайне (читай, времени активности больше чем 15 минут назад), то база может и выдержит, а вот если одновременно будут делать выборку 100 человек, и еще 100 в эту таблицу писать - база загнется
На этот случай, ты можешь сделать дополнительную таблицу, где будет только логин и время активности. Грубо говоря, ключ-значение.
В этом случае выборку из миллиона записей, 10 000 человек сделают в течение 1-й секунды.

В общем, суть идеи состоит в том, чтоб упрощать наиболее часто используемые элементы таблицы.
Следующая идея состоит в том, чтоб предоставить скриптам обрабатывать некоторые операции.
Пример - друзья пользователей (или иные зависимости).
На первый взгляд, наиболее очевидное решение - таблица, где грубо говоря два поля, поле "логин владельца", и поле "логин друга".
А вот фиг. Если тебе придется делать выборку друзей чьей-то анкеты, тебе придется делать два или три запроса - вначале считать логин друга, а потом по этому логину считать данные, и например, если города твоих пользователей забиты по-умному, через id, тогда будет еще одна выборка - имени города по его id, короче ботва.
Гораздо проще в таблице users завести поле, где ты будешь записывать друзей через разделитель: логин1 | логин5 | логин74, и уже выгребать данные используя парсинг этого поля.
Используй индексы для тех полей, по которым ты будешь делать выборку.
Индекс - специальная вундервафля, которая позволит твоей БД при выборке по полю, не бегать последовательно от начала и до конца, а сразу его находить по индексу.
Используй limit там где это возможно.
И ГЛАВНЫЙ совет: дождись финального релиза mariaDb 10.0, куда обещают впаять движок Cassandra - noSQL решения, с mySQL оберткой.
0
 Аватар для undiabler
5 / 5 / 0
Регистрация: 25.07.2012
Сообщений: 28
21.12.2012, 01:22  [ТС]
Я пытался так реализовать когда первый раз делал файловой структурой, к сожалению для меня подвисания в 2-3 секунды фактически полностью неприемлемы. Делать загрузку длительностью до 15 минут тоже не вариант, хотя на крайняк так и придется делать. Делать мультипоточным тоже особа смысла нету так как если база загрузилась не полностью - возможен сбой. А если ждать завершения загрузки так лишний поток вообще не к чему. Так что скорей всего нужно будет делать хорошо продуманную прозрачную файловую структуру.

Кстати еще такой вопрос. Насколько увеличится скорость если например приобрести специально для базы SSD? И вообще стоит ли?
0
6 / 6 / 1
Регистрация: 25.07.2011
Сообщений: 68
21.12.2012, 01:32
Нет не стоит.
Упирается не в быстродействие устройства, а в математическую обработку запросов.

Скажем так, приобретение SSD не настолько ускорит загрузку данных из базы, сколько оптимизация скриптов и самой базы.
Если тебе скорость уж ОЧЕНЬ критична, тогда тебе в помощь redis+пару килограмм оперативной памяти
0
 Аватар для undiabler
5 / 5 / 0
Регистрация: 25.07.2012
Сообщений: 28
21.12.2012, 02:08  [ТС]
Официальной поддержки для сборок Windows нет.
0
 Аватар для t1m0n
638 / 416 / 27
Регистрация: 03.11.2009
Сообщений: 1,855
21.12.2012, 03:17
попробуйте mysql
возможно нужно будет поиграться с конфигами сервера базы

ну и если есть свободная оператива и только для личного пользования то рам диск)

это словарик у вас такой на 3 миллиона слов? или что?)
0
6 / 6 / 1
Регистрация: 25.07.2011
Сообщений: 68
21.12.2012, 03:28
Есть сборки и под Windows.
https://downloads.mariadb.org/mariadb/10.0.0/
0
 Аватар для undiabler
5 / 5 / 0
Регистрация: 25.07.2012
Сообщений: 28
21.12.2012, 18:48  [ТС]
Цитата Сообщение от t1m0n Посмотреть сообщение
попробуйте mysql
это словарик у вас такой на 3 миллиона слов? или что?)
Да, и это далеко не предел
0
 Аватар для t1m0n
638 / 416 / 27
Регистрация: 03.11.2009
Сообщений: 1,855
21.12.2012, 23:31
ну у лингво словарики файлы + к ним индекс строится
0
6 / 6 / 1
Регистрация: 25.07.2011
Сообщений: 68
22.12.2012, 01:07
Да, только задача БД не вывести результат из файла, а показать одновременно информацию куче пользователей, каждый из которых хочет выбрать информацию по разным параметрам, а еще куча пользователей другую информацию пишет, и при этой записи другие пользователи не должны ощущать задержек
0
 Аватар для undiabler
5 / 5 / 0
Регистрация: 25.07.2012
Сообщений: 28
22.12.2012, 02:08  [ТС]
Вот как раз именно это мне и не нужно. Так как с базой работает одно приложение. Максимум - потоки.
Насчет индекса знаю, но самих индексных списков ключ-значение уже 56 штук)
0
6 / 6 / 1
Регистрация: 25.07.2011
Сообщений: 68
22.12.2012, 02:28
Тогда быстрее будет писать и читать с файла. Примерно ini формата.
Его обработка будет быстрее чем обработка всей базы с бесполезным функционалом.
Бинарник можешь писать хоть на перле, хоть на паскакале )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.12.2012, 02:28
Помогаю со студенческими работами здесь

Какую базу данных выбрать?
Господа форумчане! Помогите, пожалуйста, определиться с базой данных! Данные состоят из: около 700 строк, 6 столбцов. В результате...

Какую базу данных выбрать?
Подскажите, если сейчас создать базу данных в MS ACCESS, возможно ли будет ее переделать в будущем на MySQL? И правильно ли я понимаю...

Какую базу данных выбрать?
Здравствуйте ! Мне нужно сделать приложение, довольно простое, все данные должны быть на компьютере пользователя. Т.е. при первом...

Какую базу данных выбрать?
Есть задача: нужно сделать базу данных. Около 120000 записей. В каждой записе по 25-30 полей. Цель: предоставить отчёты сформированные из...

Какую базу данных выбрать?
нужна онлайн база данных, ~1000 записей, грубо говоря - ассортимент интернет магазина. Также будет клиент под Android, IOS, Windows...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru