我是数据库的新手,并尝试提供一种能够为我提供性能和数据存储功能的解决方案。
所以这是我的情况:
这是我的计划:
使用运行MySQL的中央数据服务器来存储这些数据。中央服务器将位于具有Gigabyte以太网的内部网络上。
运行SQLite的代理客户端计算机。客户端将负责接收数据以及在本地(SQLite)和远程(运行MySQL的中央数据库)存储数据
运行SQLite的其他从属客户端可以从中央数据库检索数据并将它们存储到自己的本地SQLite中。 (从属客户端和中央数据库不需要实时同步实时数据。但应该偶尔同步一次 - 定期)
我的理由是,在这种情况下,SQLite应该比网络中央数据库快得多。我希望在本地实时存储数据,然后定期将这些数据推送到远程数据库中,不会造成太多性能损失。
我想知道这是否符合我的要求,是否有任何设计能够以更好的性能和数据完整性实现这一目标? (可扩展性也是一个考虑因素,性能和完整性都是相同的)
数据库接口将用C ++编写,我已经找到了SQLite和MySQL的所有必要接口,现在只需要确定设计部分。
感谢任何建议。
答案 0 :(得分:1)
我认为在口渴时最好使用一个中央MySQL服务器并检查系统的带宽。在客户端上,您可以创建一个为存储提供统一接口的类。首先,它将缓冲并将数据发送到远程MySQL。如果性能不够好,那就是优化的时候了;在客户端上使用SQLite并编写新的存储接口实现,而无需更改其他客户端逻辑。 你不知道任何设计会有什么期望。我们应该避免过早优化。 http://en.wikipedia.org/wiki/Program_optimization#When_to_optimize