Lexander
Какая у вас хоть клиентская платформа?
Под осмысленным обновлением вы понимаете инкрементальное обновление данных или все же допустима полная перезагрузка данных при изменении (когда уже точно известно, что изменения были)?
Допустимо ли изменение структуры таблиц? Можно просто добавить автобновляемое поле поле timestamp и простым запросом COUNT по этому полю узнать о факте изменений в таблице.
А два таких поля позволят даже вычислить строки, которые обновлялись.
Под windows всё работает, в том числе и база, сидящая на локалхосте.
Чтобы не было недопониманий и критики в сторону вышесказаного - структура такова:
- Программа состоит из пакета (сама программа + mysql сервер), что позволяет работать ей автономно, а так же каждый компьютер может выступать в роли БД.
- Каждая другая копия программы может подключится к удаленной БД. Так и организовывается работа с одной базой.
Собственно ничто не запрещает вынести базу на выделеный сервер и подключать все копии программ к нему.
Но всё это консумерки души. И не должно влиять на решение поставленой задачи.
Полная перезагрузка недопустима, от этого и бежим. Обновлять нужно только то, что изменилось.
Да, изменение таблиц допустимо… Но даже если в каждой строке будет запись о времени изменения, по которой мы дернем нужные данные для обновления, всё равно придется использовать таймер, что в данном случае, возможно, допустимо, но всё равно коробит. Коробит потому что в моем опыте постоянно возникали проблемы наподобие “MySQL server has gone away” при осуществлении запросов через треды.