База данных, таблица, список. Куда быстрее обращается ZP?

Nekro

Client
Регистрация
01.08.2020
Сообщения
232
Благодарностей
24
Баллы
18
Здравствуйте.

Предположим есть локальная БД, локальная excel таблица и текстовый список. Предположим обрабатываем единичную информацию, без массивов данных. Например, нужно получить слово "test" из бд/таблицы/списка (все хранится локально), добавить к нему цифру "1" и записать новое значение "test1" обратно.

В плане скорости получения/записи информации - что будет эффективнее? Перехожу на БД, но есть сомнения не замедлит ли это мои проекты. Данных много, но они разбросаны по разным спискам/таблицам.
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 787
Благодарностей
2 453
Баллы
113
Напишите 3 шаблона.
В цикле внутри на 100 действий.
Запустите в 100 потоков.
Посмотрите время выполнения.
Результат должен быть очевидным - если не очевидный - сделайте внутри 1000 действий и повторите процедуру.

Другими словами - не важно кто что тут напишет - пока сами на своих данных в своих шаблонах не поставите эксперимент, не узнаете что в реальности в конкретно Вашем случае будет работать лучше.
 
  • Спасибо
Реакции: Nekro

Nekro

Client
Регистрация
01.08.2020
Сообщения
232
Благодарностей
24
Баллы
18
Напишите 3 шаблона.
В цикле внутри на 100 действий.
Запустите в 100 потоков.
Посмотрите время выполнения.
Результат должен быть очевидным - если не очевидный - сделайте внутри 1000 действий и повторите процедуру.

Другими словами - не важно кто что тут напишет - пока сами на своих данных в своих шаблонах не поставите эксперимент, не узнаете что в реальности в конкретно Вашем случае будет работать лучше.
Специально для того, чтобы не проводить такие эксперименты написал пример вводных данных (иначе не за чем было бы создавать тему). Вопрос в целом общий и довольно простой. Тем, кто пользовался всеми тремя методами должно быть знают конкретный ответ. Я не пользовался локальной версией БД, но очевидно - если БД находится не локально, то она уже проигрывает спискам и таблицам, потому что появляется Ping.
 

Ахилес

Client
Read only
Регистрация
11.11.2020
Сообщения
956
Благодарностей
392
Баллы
63
Специально для того, чтобы не проводить такие эксперименты написал пример вводных данных (иначе не за чем было бы создавать тему). Вопрос в целом общий и довольно простой. Тем, кто пользовался всеми тремя методами должно быть знают конкретный ответ. Я не пользовался локальной версией БД, но очевидно - если БД находится не локально, то она уже проигрывает спискам и таблицам, потому что появляется Ping.
а проводить тесты все равно придется. по одной простой причине, что у всех разные запросы к используемым средствам. кому то скорость подавай, кому то удобную форму хранения данных....

вот например локальная база sqlite... вроде да, локальная, пинга нет... но она файловая, однопоточная изначально. режим wal конечно немного улучшает ситуацию, но при увеличении потоков, 100% будет увеличение времени на каждый запрос к базе.
сетевая бд. есть пинг. но при увеличении потоков время запроса к базе данных не растет, как к файловой.

списки и таблицы вообще нет смысла сравнивать с базами данных.

плюс к этому, для скорости можно использовать дата-классы в памяти и хранить всю темповую информацию в них. выгружая конечный результат либо по завершении заданий , либо по полному завершению работы проекта.
опять же, все это очень зависит от проекта. для проектов которые запустил для одноразового сбора информации, нет смысла устраивать долгосрочное хранилище в виде базы данных, достаточно получить и сформировать промежуточные файлы.
 
  • Спасибо
Реакции: Nekro

Nekro

Client
Регистрация
01.08.2020
Сообщения
232
Благодарностей
24
Баллы
18
для проектов которые запустил для одноразового сбора информации, нет смысла устраивать долгосрочное хранилище в виде базы данных, достаточно получить и сформировать промежуточные файлы.
Это меня и интересовало. По специфике моих проектов нужно обновлять данные каждые 0-30 секунд. С чем неплохо справляются списки и таблицы, но в БД хранить всё удобнее. Однако возникает вопрос доступности данных от такого хранения. Списки и таблицы я уже миллион раз тестировал. Там хоть 500 обращений из разных шаблонов к одному списку почти одновременно - проблем нет.

А с БД очень много нюансов и чтобы это проверить - нужно неплохо так посидеть, переделать логику всего и вся. Как я понял - БД хороша только когда надо делать сложную выборку из огромного объёма данных по нескольким параметрам.
 

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 621
Благодарностей
1 216
Баллы
113
А с БД очень много нюансов и чтобы это проверить - нужно неплохо так посидеть, переделать логику всего и вся. Как я понял - БД хороша только когда надо делать сложную выборку из огромного объёма данных по нескольким параметрам.
Необязательно... Иногда удобнее и с небольшими объемами работать (в том числе, что к ним может быть доступ с разных машин/серверов, если база внешняя или доступ открыт). Ну и сама по себе БД - не панацея. Нужно будет, как минимум, понять, куда индексы проставлять, потому как без них даже небольшая база может выборку делать дольше, чем зенка обработает список/таблицу ))
Лично я за БД, но, как говорится, нужно понимать, как ее правильно использовать.
 
  • Спасибо
Реакции: Nekro

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)