|
5 / 5 / 0
Регистрация: 25.07.2012
Сообщений: 28
|
|
Какую базу данных выбрать?13.12.2012, 16:19. Показов 2241. Ответов 17
Метки нет (Все метки)
Предположим существует 3 миллиона слов. На каждое слово приходится по 200-300 полей с дополнительной информацией. Необходимо выбрать базу данных которая бы обеспечивала фактически мгновенный доступ к любому из слов (слова в алфавитном порядке). Все действия выполняются на одной машине. Какую посоветуете выбрать базу данных для этой целы? Хранение в файлах уже не выход так как такие операции как добавление или удаление элемента уже сказываются на производительности.
0
|
|
| 13.12.2012, 16:19 | |
|
Ответы с готовыми решениями:
17
Какую Базу данных использовать для того чтобы написать не большую программу ? Какую базу данных выбрать Какую выбрать базу данных? |
|
6 / 6 / 1
Регистрация: 25.07.2011
Сообщений: 68
|
|
| 20.12.2012, 16:23 | |
|
Подтверждаю. Прозрачная замена мускуля, устанавливается легко, работает шустро.
0
|
|
|
5 / 5 / 0
Регистрация: 25.07.2012
Сообщений: 28
|
|
| 20.12.2012, 17:32 [ТС] | |
|
А что скажете про SQLite?
0
|
|
|
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
|
|
|
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
|
|
|
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
|
|
|
5 / 5 / 0
Регистрация: 25.07.2012
Сообщений: 28
|
|
| 21.12.2012, 02:08 [ТС] | |
|
Официальной поддержки для сборок Windows нет.
0
|
|
|
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
|
|
|
5 / 5 / 0
Регистрация: 25.07.2012
Сообщений: 28
|
|
| 21.12.2012, 18:48 [ТС] | |
|
0
|
|
|
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
|
|
|
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
|
|
| 22.12.2012, 02:28 | |
|
Помогаю со студенческими работами здесь
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 из. . .
|