happs Asked: 2015-07-24 16:02:32 +0800 CST2015-07-24 16:02:32 +0800 CST 2015-07-24 16:02:32 +0800 CST 分片 VS 复制 772 为了提高查询响应,最好将数据分片或复制现有分片以获得更快的响应。 在分片的情况下,数据可能很好地分布,因此查询。 在复制现有分片的情况下,将有更多主机响应查询请求。 database-design cloud 1 个回答 Voted Best Answer aldwinaldwin 2015-07-24T17:10:13+08:002015-07-24T17:10:13+08:00 为了“提高查询”对读取数据的响应,复制将有所帮助。您可以写入主节点并从辅助节点读取以分发查询。主节点也可以从昂贵的读取中解脱出来,并且可以只忙于写入。请注意,数据可能存在一些滞后。例如一个论坛,读者在插入后的几毫秒内看到帖子并不是 100% 的必要。1 或 2 秒是可以接受的。 复制的最大优势是“备份和高可用性”,以防您的主服务器出现故障。 如果您选择一个好的分片键,分片会有一些改进。如果您正确执行此操作,“可能”会分发写出查询。 分片的主要原因是“横向扩展你的数据库”。处理大数据,不想创建/插入越来越大的磁盘……你可以在它旁边创建新的服务器,只要你想。因此,与其维护 1 个 10TB 的磁盘,您可以让 10 个服务器为 1TB 并一点一点地增长。 因此,两者都可以改进,...在写入密集型系统上,您可能想要选择分片,...在读取密集型系统上,可能建议使用副本。但是,如果您有大量数据,请选择使用副本进行分片。 例子: Server 1 : Shard1Repl1 + Config (datacenter/zone/network 1) write Server 2 : Shard1Repl2 (datacenter/zone/network 2) read Server 3 : Shard2Repl1 (datacenter/zone/network 1) write Server 4 : Shard2Repl2 + Config (datacenter/zone/network 2) read Server 5 : Shard1Arbiter + Shard2Arbiter + Config (datacenter/zone/network 3) small server addon
为了“提高查询”对读取数据的响应,复制将有所帮助。您可以写入主节点并从辅助节点读取以分发查询。主节点也可以从昂贵的读取中解脱出来,并且可以只忙于写入。请注意,数据可能存在一些滞后。例如一个论坛,读者在插入后的几毫秒内看到帖子并不是 100% 的必要。1 或 2 秒是可以接受的。
复制的最大优势是“备份和高可用性”,以防您的主服务器出现故障。
如果您选择一个好的分片键,分片会有一些改进。如果您正确执行此操作,“可能”会分发写出查询。
分片的主要原因是“横向扩展你的数据库”。处理大数据,不想创建/插入越来越大的磁盘……你可以在它旁边创建新的服务器,只要你想。因此,与其维护 1 个 10TB 的磁盘,您可以让 10 个服务器为 1TB 并一点一点地增长。
因此,两者都可以改进,...在写入密集型系统上,您可能想要选择分片,...在读取密集型系统上,可能建议使用副本。但是,如果您有大量数据,请选择使用副本进行分片。
例子: