Обыно системы для бизнеса проектируются так чтобы single source of truth (единый источник правды) лежал всегда в базе. Короче должна быть консистентнсоть. Если у вас есть желание где-то срезать поворот или просто придержать данные - то это делать тоже можно. Единственно.. нужно обсудить с бизнесом тот случай когда данные ДОЛЖНЫ были попасть в базу но не попали по причине вашей умной буферизации или оптимизации.
Обновлять каждые 5 секунд одну строчку в базе можно. Базы выдерживают и большее число транзакций в секунуду. Но тут мне кажется важна не частота а скорее полезный эффект. Будет ли полезно такое обновление. И откуда в систме число 5 секунд появилось?
Keith Griffon, непосильную задачу ты потянул дружище. Я тебе советую выкинуть c++. И дело вообще не в среде разработки а в том что ты пока ещё не можешь спроектировать и обосновать свой проект. Сечешь? Архитектура проекта здесь первична. А среды и компоновка фолдеров это десятое дело.
Eдиного подхода нету. Обычно берут IDAPro или им подобные инструменты и пытаются понять как работает логика игры. По поводу - найти участок памяти.... - сразу скажу что может не сработать. Этого участка может не быть. Потому что логика конфигурации двери или тормоза может быть реализована просто в сегменте кода без считывание чего-то из данных. А сегмент кода вы так просто как деньги и патроны не найдете.
Вобщем это непросто. Иначе-бы любой школьник хачил игры и плодил таблетки.
В науке и технике это называется - консистентность. Например если в реляционной БД ты делаешь SELECT, то она (как нормальная БД) отдает тебе данные замороженные на начало открытия курсора. Тоесть как только начал извлекать строки - таблица замёрзла и не меняется.
В этом есть кардинальное различие между БД и памятью потока которая в этот момент может быть изменена другими потоками. Тут уж надо что - то решать с блокировкой aquire/release.
Вообще это знание как лакмус отличает junior от middle например. Я практически не встречал джунов которые бы разобрались в этом вопросе. Обычно - на уровне "что-то где-то слышал" или "знал но забыл"
SELECT *
FROM wp_postmeta JOIN wp_posts
ON wp_postmeta.post_id = wp_posts.ID
WHERE wp_postmeta.meta_value in (981,982,983) and wp_postmeta.meta_key in ('rab-1', ....)
and ....