想扩展你的数据库吗?那么先学习一下I/O
|
基于shard key,分片片将数据切分到不同的副本集,集群中不同副本集负责相应范围的值。所以,可以通过将写操作分配给集群中不同的副本集来提升应用程序的写吞吐量。对于写负载高的应用,分片可以非常有效的。
在shard key空间中将数据按范围划分,使用shard key横跨多个副本做范围查询可以非常有效。如果将shard key哈希,那么所有范围查询必须运行在集群中的所有分片,但是在shard key上的点查询只运行在一个分片上。shard key哈希,据结构模型并且不支持join,分片用起来非常的高效且简单。如果上述的方案都不足以解决应用的瓶颈问,那么你可以在分片上多下工夫了。
无论如何,分片都是一个重量级的解决方案,而且成本非常之高。对初入者来说,你的硬件投入预算需要增加好几倍。不仅仅需要为分片设置增加服务器,还需要增加一整套副本集。你还需要增加和管理配置服务器,考虑到成本问题,用户需要慎重考虑分片是不是很必要。通常来讲,上面所有方案都比这个节省成本。
另外一个很大的挑战就是选择一个shard key,一个好的shard key有以下特点:
大多数(如果不是全部)的查询都使用shard key,任何查询(没有使用shard key)必须运行在所有的分片上。这点可能比较麻烦。
(编辑:PHP编程网 - 湛江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

