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

А какого размера у вас базы данных? Датасеты придумали, когда

память у компов была считанные мегабайты и данные вычитывались по одной строке. Сейчас же можно тупо всю базу в память прочитать и фильтровать на лету. Я проверял на таблицах до миллиона строк - сотня миллисекунд на железе 20-летней давности

17 ответов

29 просмотров

Ну client-side курсоры примерно это и делают

Это не работает... Никакой памяти (особенно для 32 битного клиента) не хватит читать современные базы. Сеть и сервер умрут если 5 пользователей одновременно начнут читать на себя таблички с 200к строк с широкими колонками. И что насчет синхронизации изменений таблиц при многопользовательской работе? Каждые 20 сек перечитывать/перефильтровывать? 100мс - это сказки... работающие только на сферической базе в вакууме из трех таблиц с монопольным доступом

Sergey-Bodrov Автор вопроса

Ну так какого размера база? 10 гигов хотя бы наберется? Синхронизация делается проще простого - журнал событий вида (время, таблица, ключ), который можно рассылать, а можно читать по таймеру. А можно средствами СУБД получать уведомления об изменениях.

Sergey Bodrov
Ну так какого размера база? 10 гигов хотя бы набер...

Недельная база примерно 40 Гб. Но это неважно, мы ведь говорим о выкачивании на клиента всех записей одной таблицы? Самые большие таблицы 3..4 Гига + 3..6 Гб в блоб-полях. Замучаешься на клиента всасывать и фильтровать

Sergey-Bodrov Автор вопроса
Михаил Усков
Недельная база примерно 40 Гб. Но это неважно, мы ...

С такими размерами баз можно задуматься о долгосрочном кешировании данных на клиенте в виде отдельной справочной БД. Либо сразу веб/тонкого клиента делать.

Михаил Усков
Это не работает... Никакой памяти (особенно для 32...

С таблицами-справочниками, которые обновляются хорошо если раз в месяц, работает

Оно и тогда тормозило не по деццки.

Sergey Bodrov
Ну так какого размера база? 10 гигов хотя бы набер...

А можно просто принять за аксиому что то что видно на экране - априори устарело. Хочешь видеть самую актуальную версию - блокируй. Не смысла непрерывно рефрешить, тем или иным методом. Все что получено на клиента - по определению устарело.

Sergey-Bodrov Автор вопроса
Владимир Аксенов
А можно просто принять за аксиому что то что видно...

Железо позволяет в реальном времени смотреть онлайн видео высокого разрешения, отрисовывать целый виртуальный мир, имитировать мыслительные процессы человека. Но десяток килобайт из базы данных отображать в реальном времени никак нельзя, только блокировать или априори устарело. Я правильно понял? =)

Sergey Bodrov
Железо позволяет в реальном времени смотреть онлай...

А оно точно позволяет без задержки смотреть любой фильм, когда-либо снятый, с любой случайно выбранной секунды?

Ну и откуда взялся вывод про десяток килобайт? Откуда известна частота обновления данных в БД? Если одну запись поочередно хреначат 1 раз в секунду 50 клиентов, зачем человеку видеть как она меняется 50 раз в секунду? Он все равно не может это воспринять и адекватно отреагировать.

Sergey Bodrov
В ютубе именно так

Это неправда, в ютюбе страницы по несколько секунд открываются. А должны, по вашему, мгновенно начать трансляцию. Любой случайно выбранный ролик, с любой случайно выбранной секунды. ...ну и вопрос ещё запуска ютюьного сервера на ОДНОМ компьютере. Пусть даже самом дорогом мейнфрейме, но на одном.

Sergey-Bodrov Автор вопроса
Владимир Аксенов
Ну и откуда взялся вывод про десяток килобайт? Отк...

У меня события охранных и пожарных приборов со всего города валят на пульт непрерывно, их все надо обрабатывать. Нет событий больше минуты - тревога. Событие из списка тревожных - тревога. Событие не тревожное, но меняет статус на тревожный (преждевременное снятие с охраны, например) - тревога. И нельзя терять ни одного события. Даже если сервер сломается или его отключат на время, нужно все сохранять и после восстановления показать. И это несложно делается, тупо генерим SQL INSERT с синтетическим ключом и пишем в файл (на флешку, в сеть, куда угодно) как лог. А оттуда данные в сервер или еще куда читаем по возможности и показываем пользователю. В таком случае все работает даже без БД, она как архив и для отчетов.

Sergey Bodrov
У меня события охранных и пожарных приборов со все...

И что, есть реальная разница в частоте рефреша событий - 60 раз в секунду или раз в 1 секунду? Ну и кроме того, у вас задача другая - отслеживать все события. А к примеру, зачем отслеживать изменения в документах которые ты видишь, но не ты делал и не ты правишь? Ну поменялось, будешь смотреть движение товара по документу или статус документа, если актуально - то увидишь. Не будешь смотреть - так и не надо.

Sergey-Bodrov Автор вопроса
Владимир Аксенов
И что, есть реальная разница в частоте рефреша соб...

Там 500 мс рефреш (2 раза в секунду), вполне достаточно. В режиме отладки 10 раз в секунду.

Владимир Аксенов
И что, есть реальная разница в частоте рефреша соб...

Забавно. Пришлось делать отчёты по существующей чужой программе, которая работает с датчиками ну и со своей базой. Навесила триггер на таблицу событий, чтобы добавлялось в мою. Вроде тормозов нет

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта