я должен использовать SQLite + MySQL, чтобы обеспечить высокую производительность наряду с хранением данных? - PullRequest
0 голосов
/ 16 ноября 2011

Я новичок в базах данных и пытаюсь найти решение, которое обеспечит мне производительность, а также возможности хранения данных.

Вот моя ситуация:

  1. У меня непрерывный поток данных в реальном времени со скоростью несколько сотен миллисекунд.Я хочу хранить эти данные, а также получать их в будущем.

Вот мой план:

  1. использовать центральный сервер данных, на котором работает MySQLхранить эти данные.Центральный сервер будет находиться во внутренней сети с сетью Gigabyte Ethernet.

  2. Прокси-клиент, работающий под управлением SQLite.Клиент будет нести ответственность за получение данных, а также за их локальное хранение (SQLite) и удаленно (центральная база данных под управлением MySQL)

  3. Другие подчиненные клиенты, работающие под управлением SQLite, могут получать данные из Центрального сервера.База данных и хранить их в своем собственном локальном SQLite.(Ведомые клиенты и центральная база данных не должны синхронизироваться с данными в реальном времени в режиме реального времени. Но должны периодически синхронизироваться - периодически)

Моя причина этогоявляется то, что SQLite должен быть намного быстрее, чем сетевая центральная база данных в этой ситуации.Я надеюсь, что хранение данных локально в режиме реального времени, а затем периодическая отправка этих данных в удаленную базу данных не приведет к слишком сильному снижению производительности.

Мне интересно, удовлетворяет ли это моим требованиям и существует ли какой-либо дизайнчто может достичь этого с лучшей производительностью и целостностью данных?(Расширяемость также учитывает, что производительность и целостность одинаковы)

Интерфейс базы данных будет написан на C ++, я уже нашел все необходимые интерфейсы для SQLite и MySQL, теперь просто нужно закрепить дизайнчасть.

Любой совет приветствуется.

1 Ответ

1 голос
/ 17 ноября 2011

Я думаю, что с жаждой лучше использовать один центральный сервер MySQL и проверить пропускную способность системы.На клиентах вы можете создать класс, который обеспечивает единый интерфейс для вашего хранилища.Сначала он буферизует и отправляет данные на удаленный MySQL.Если производительность не достаточно хорошая, пришло время оптимизировать;используйте SQLite на своих клиентах и ​​напишите новую реализацию интерфейса хранилища без изменения другой клиентской логики.Вы действительно не знаете, чего ожидать от любого дизайна.Мы должны избегать преждевременной оптимизации.http://en.wikipedia.org/wiki/Program_optimization#When_to_optimize

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...