|
1 / 1 / 1
Регистрация: 13.08.2015
Сообщений: 45
|
|
Какой лучший способ хранения большого объема данных?17.09.2015, 00:29. Показов 5616. Ответов 17
Метки нет (Все метки)
Доброй ночи
![]() Требуется простой совет, каким образом лучше всего хранить большой объем данных? Приложение генерирует большой объем данных (как правило типа int и bool), и с ним работает. Объем записываемых данных в секунду большой, не важно сколько это будет весить, важно что бы записывал данные быстро. Желательно еще скинуть литературу (или ссылки на хорошие статьи) как работать с этой записью на С#
0
|
|
| 17.09.2015, 00:29 | |
|
Ответы с готовыми решениями:
17
Подскажите лучший способ хранения данных, чтение/запись файлов
|
|
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,236
|
|
| 17.09.2015, 16:44 | |
|
о чем идет речь, нужна БД, которая будет хранить данные на жестком диске или вопрос как это хранить лучше в оперативной памяти?
0
|
|
|
1 / 1 / 1
Регистрация: 13.08.2015
Сообщений: 45
|
|
| 17.09.2015, 20:23 [ТС] | |
|
VLK, Хранение на жестком диске
0
|
|
|
Заблокирован
|
|
| 17.09.2015, 20:28 | |
|
0
|
|
|
1 / 1 / 1
Регистрация: 13.08.2015
Сообщений: 45
|
|
| 17.09.2015, 20:50 [ТС] | |
|
Я возможно не правильно выразился...
Как сделать бд что бы инфа типа int и bool в нее максимально быстро записывалась, может быть в xml или с помощью sql?
0
|
|
|
|
|
| 17.09.2015, 20:54 | |
Сообщение было отмечено babanty как решение
Решение
babanty, максимально быстро - прямая запись в файл через BinaryWriter. Быстрее прямой записи в файл ничего нет.
Если данные приходят неравномерно - можно сделать очередь и отдельный поток для разгрузки очереди в файл.
1
|
|
|
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,236
|
|
| 17.09.2015, 21:34 | |
|
что за данные, для чего они нужны, как в дальнейшем будут использоваться.
если они активно будут использоваться (поиски и т.д.) тогда запускай сервер MySQL или MS SQL, если это мертвый груз, ну тогда записывай в файлы, именно в файлы, а схему как разбивать по частям уже сам придумай, допустим каждый час создается новый файл и в него записывается или веди учет сколько в файл записано данных, допустим записал 100 000 строк, создаешь новый, как то так.
1
|
|
|
1 / 1 / 1
Регистрация: 13.08.2015
Сообщений: 45
|
|
| 18.09.2015, 11:24 [ТС] | |
|
Storm23, Спасибо, думаю это то что нужно
0
|
|
|
|
||||||||||||
| 18.09.2015, 15:56 | ||||||||||||
|
Например:
1
|
||||||||||||
|
|
|
| 18.09.2015, 15:58 | |
|
А вообще, можно даже в начале писать все смещения для всех индексов, чтобы по всему файлу не прыгать в поиске нужной записи, а сразу прочесть её смещение.
Добавлено через 26 секунд Ну и да, делить файлы, если они становятся слишком большими тоже вполне себе здравая идея.
0
|
|
|
|
|||
| 19.09.2015, 07:38 | |||
|
1) Сколько бы БД в память не записывала - ей все равно придется это скидывать на диск. Какова скорость скидывания на диск? Точно такая же как у FileStream. 2) "Записывать в память" и вот это все. Нам никто не мешает тоже делать буферизацию. Более того, FileStream уже содержит буфер (по умолчанию 4кб, можно менять). Да и современные ОС буферизируют файлы на уровне ядра. Кроме того, максимальная скорость потока данных не зависит от буферизации. Буфер полезен только тогда, когда поток данных - неравномерный. Тогда, пока данные не поступают, можно потихоньку писать на диск. Снова же - никто нам не мешает это сделать самим, без БД. Это все было о том, почему у БД нет преимуществ. Теперь о том, почему БД хуже: 3) Жуткий оверхед. Для того, что бы отправить один байт в БД, нужно: преобразовать байт в строку, создать SQL команду, отправить на севрер через TCP/IP, серверу нужно распрасить строку запроса, выполнить запрос и сохранить данные. 4) А ведь еще есть: логирование (MS SQL ведет лог всех операций, в текстовом виде!), а еще есть поддержка транзакций и возможностей отката. А еще есть оверхед на хранение структуры таблицы, индексы. И т.д. И вы думаете это все будет работать быстрее, чем просто скинуть байт в файл? Конечно MSSQL это монстр, но даже если взять SQLite, все равно будет все тоже самое, только в меньших масштабах. Конклюжен: БД это хорошо, когда у вас есть реляционный набор данных, и вам нужна инфраструктура по их хранению. Если вам нужно быстро и эффективно сохранять бинарные данные - стандартные БД неэффективны.
1
|
|||
|
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,236
|
|
| 19.09.2015, 14:06 | |
|
ну надо еще узнать что за данные, как они потом будут использоваться, сколько они хранится будут и т.д.
0
|
|
|
970 / 773 / 171
Регистрация: 12.04.2009
Сообщений: 1,700
|
||
| 19.09.2015, 15:02 | ||
складывать чтобы они висели мертвым грузом можно, но как потом с ними работать? С БД дела обстоят намного лучше, тот же sqllite к примеру. Либо придумать такой формат файла, который бы давал возможность максимально доступно обращаться к данным. Вообще то вы развели демагогию, а автор так толком и не объяснил - нафига ему это надо.
0
|
||
|
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
|
|
| 19.09.2015, 16:40 | |
|
если бы автор еще уточнил что такое "большой объем" было бы проще
в обычном dictionary можно хранить миллионы записей с мгновенным доступом и записью в файл обычным binaryfromatter Добавлено через 51 секунду ну да память скушает, аж несколько мегабайт..
0
|
|
|
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,236
|
|
| 19.09.2015, 18:28 | |
|
0
|
|
|
1 / 1 / 1
Регистрация: 13.08.2015
Сообщений: 45
|
|
| 19.09.2015, 23:43 [ТС] | |
|
Всем спасибо за ответы и рассуждения
![]() Наверное это не стоило таких глубоких Ваших рассуждений, но в обще я делаю клеточный автомат типа "жизнь". Хочу сохранить историю "деятельности клеток" и ее интересные моменты при необходимости загружать
0
|
|
|
|
|
| 21.09.2015, 11:58 | |
|
Быстрее прямой записи на диск, как тут верно заметили, ничего быть не может.
А вот если нужны "удобства" - тут уже можно искать и выбирать. Про xml, очевидно, можно забыть сразу. SQL, во всех вариантах - только если использовать BLOB-ы. Правда, тогда теряется и смысл SQL. Для хранения массивов бинарных данных хорош формат HDF5.
0
|
|
| 21.09.2015, 11:58 | |
|
Помогаю со студенческими работами здесь
18
UI в играх XNA, какой лучший и простой способ организации
Какой способ хранения анимации эффективнее? Какой способ хранения переменных выбрать Дорогие знатоки! Какой по вашему мнению самый лучший способ перевести кракозябры на русский? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|