我将不断地使用大约4台服务器(Linux)(尽可能多地使用多处理)发送查询(大多数查询创建新行,但其中一个服务器将读取数据)到数据服务器。我想最好有单独的数据库。我认为sqlite3是我最好的选择,但我愿意接受推荐。我想尽量减少腐败和数据丢失的风险吗?
编辑: 我还必须检查数据库是否有重复项。
答案 0 :(得分:3)
这是一个非常难的问题。如果要使用单独的数据库,则必须担心手动保持它们的一致性(这是真正不想解决的问题)。相反,让所有4个(或更一般地,N个)服务器指向同一个数据库实例,并让DB为您进行群集。这样DBMS就可以处理并发和持久性的东西,你仍然可以获得所需的性能。
答案 1 :(得分:2)
将风险降至最低的最佳方法是选择一个完全保证ACID合规性的数据库,并认真对待该保证。请注意,因为某些数据库系统并不总是为您提供ACID合规性,具体取决于您设置的选项。例如,对于PostGres或SQL Server,你会非常安全。 MySQL - requires a bit more thought:
如果您有其他软件保护措施, 超可靠的硬件,或者可以容忍小的应用程序 数据丢失或不一致的数量, 您可以调整MySQL设置 交易一些ACID可靠性以获得更高的性能或 吞吐量。 强>