作者junwen12221
qq:294712221
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
1.存储数据的节点(分区)
即一个或多个分区,每个分区由数据源,物理库名,物理表名组成,其中数据源可以使用集群替代,这样就自动拥有了利用集群高可用与请求负载均衡在集群上的多个数据源的效果。
2.在集群中,数据是否有强一致要求
集群的类型与它的参数配置会决定数据是否强一致。当分区中只配置数据源或者集群只有一个数据源的时候,那么这个逻辑表的数据是强一致的。在数据异步传输同步的集群中,主数据源到从数据源的数据的变更同步延迟,,负载均衡又把请求发送到从节点,结果查询到了到了旧数据。对于某些从一个mysql上程序迁移到读写分离架构的程序,代码在插入或修改数据后马上查询,很容易出现查不到数据的问题。
3.自增主键
在逻辑表中,一个或者多个分区共享同一个自增序列或分别独立自增序列。
4.分片键与分片算法
分片键与分片算法对逻辑表数据进行路由,得到一个或者所有分区或者一部份分区。这样,查询就可以使用分区剪裁进行优化,使对所有分区查询变成只对一个或者一部份分区查询。插入数据的请求也分散到不同的分区上。同时对不同分区的操作都是并行的,使多个存储节点同时进行数据运算,获得并行计算的优势。
5.逻辑表之间的数据关联关系
利用全局表,单表与分片表的表存储关系,可以使join操作直接在存储节点上面执行。相同的分片算法的逻辑分表,它们以分片键进行关联,也可以进行join下推的优化。