170 похожих чатов

Мой софт должен работать с очень большим кол-вом данных и

желательно обрабатывать их максимально быстро.
Я использовал csv-таблицы и каждый модуль обрабатывает их построчно, выполняя свою ф-цию. (unix-way)
Но теперь в главном модуле мне нужно делать нормальные выборки, а не обрабатывать построчно. Думаю, мне надо чтоб индексировались ячейки таблиц, по скольку строк в таблице может быть много - например, миллион.
Перед тем как я начал делать всё на csv-таблицах, я пробовал делать на SQL. У меня слабый ноутбук и замерив скорость самой частой операции "записать 2000 строк" Mysql (30 сек.) и liteSQL (6 сек.) меня эти результаты не устроили, поэтому я сделал всё что было можно на csv-файлах. (на них всё летает, разумеется)

Вот размышляю над тем, чем теперь воспользоваться. Смотрю в сторону NoSQL(mongoDB), LiteSQL или же продолжить делать всё на файлах, написав нужны выборки самому.
Кто что посоветует и кто что проверял? Что самое быстрое?
P.S. Софт работает только на локалхосте, сижу на Debian

15 ответов

18 просмотров

Запись в файл и последовательное чтение из него всегда будет быстрее, чем использование бд, но если тебе нужно его обрабатывать, брать сложные селекты, то тут уже необходима бд

Нельзя говорить, что быстрее, не обозначив четко круг операций и их частоту

ㅤ- Автор вопроса
Pavel Павлик
Запись в файл и последовательное чтение из него вс...

не то чтобы сложные, но в главном модуле к примеру мне нужна выборку данных из нескольких строк делать. а с построчным чтением это уже неудобно. Стою на распутье - liteSQL, NoSQL, своя миниБД на файлах или что-то еще?


не то чтобы сложные, но в главном модуле к примеру...

Своя бд — это оверкилл, особенно, если ты для обработки этих данных используешь питон. Что тебе выбрать я знаю, тем более, как я сказал, не указано какие операции нужны, и неизвестно какие объекмы данных будут

ㅤ- Автор вопроса
Pavel Павлик
Нельзя говорить, что быстрее, не обозначив четко к...

Нужны несложные операции - выборка по id или name не более 50 строк из таблицы пускай в ней будет 1кк записей, изменение их и запись обратно. Желательно чтобы быстро работало. И похоже, на этом этапе мне придется конвертировать csv-таблицу с 1 млн. записей в базу, которую выберу. Конвертация назад уже будет необязательна.

ㅤ- Автор вопроса
Pavel Павлик
Своя бд — это оверкилл, особенно, если ты для обра...

я примерно написал. таблица в миллион строк(этот минимум, возможно 10 млн, 50, а лучше больше). операции не сложные - выборка по name или id, запись обратно - всё. ну может, простые какие-то операции пригодятся еще. Просто я понимаю, что неиндексированный csv с 1+ млн. записей парсить из-за получения 5 ячеек с нужными значениями - нелогично.


я примерно написал. таблица в миллион строк(этот м...

Мне кажется, что на таких объемах особой разницы в бд не будет

ㅤ- Автор вопроса
ㅤ- Автор вопроса
Pavel Павлик
Мне кажется, что на таких объемах особой разницы в...

я так прочитал смысл, что ты иммешь ввиду что объемы маленькие и разницы не будет. Но разница есть


я так прочитал смысл, что ты иммешь ввиду что объе...

ты в бд писал все строки одной транзакцией или каждую строку отдельной транзакцией?

ㅤ- Автор вопроса
G9T
ты в бд писал все строки одной транзакцией или каж...

отдельной и тестировал это на php. но как-то к таким БД у меня осталось впечатление что они тормознутые... Сейчас про Redis читаю, он быстр, но на сколько мне подходит пока не понял


отдельной и тестировал это на php. но как-то к так...

если утебя запись в приоритете над селектом данных - убери индексацию

ㅤ- Автор вопроса
G9T
если утебя запись в приоритете над селектом данных...

Спасибо, буду знать. Но приоритет больше в селекте нужных значений из csv (или конвертированного каждый раз csv в БД)

Редис

ㅤ- Автор вопроса
Denis Kalinochkin
Редис

Вот про него сейчас и читаю, очень надеюсь что это подходящее решение

Похожие вопросы

Обсуждают сегодня

Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
48
Всем привет! Скажите, никто не пытался уменьшить размер процесса ssl, которые ассоциируется с открытым соединением (не помню точное название этого процесса, но там была какая-...
Алексей
20
а проверьте, собирается ли у кого сейчас транк лазаря через делюкс? у меня вот: fpcupdeluxe: info: Lazarus Native Installer (BuildModuleCustom: UserIDE): LazBuild: building Us...
Iluha Companets
20
Мне тут приспичило встроить в программу форматировние текста SQL, расставить переносы строк и отступы так, чтобы лучше читалось. Я что-то свое изобразил, оно после ключевых сл...
Sergey Bodrov
11
This is a big issue. Just by being a citizen of a country, you are denied to contribute to Open Source software: https://youtu.be/L5Ec5jrpLVk?si=1iIuHnMPbCB4anV-
Sharuzzaman Ahmat Raslan
72
добрый день. возможно ли изменить цвет окон лазаруса? Как?
Budemposmotret
35
Господа, а кто-нибудь сталкивался с размещением на TTabControl/TTabSheet множества контролов (> 100) с последующими External: Access violation? Вот буквально на ровном месте. ...
Dmitry
29
А какие существуют способы обработки ошибок выделения памяти в ядре? Т.е., допустим, есть функция, которая возвращает адрес свободной страницы в физической памяти и диапазон в...
disba1ancer
51
Добрый день. Опять снова хочу обратиться к вам за помощью. После создания проэкта stack new, lazy.nvim + nvim-lspconfig/haskell-tools + hlint, ormolu из mason + hls из ghcup ...
Nannk
8
Does anyone have some zeroday's left?
Wito!d ♥️🩷
44
Карта сайта