数据分区考虑

用户表ID之前是用整型做主键. 用户ID会被其他表(照片,评论,个人资料)用到.

但长远考虑亚洲,欧洲,美洲都放多个服务器, 服务器数据之间不做实时同步,只做定期同步.

用户ID用整型做主键就会冲突了.考虑用户表增加一个ServerID字段(三位数字). 用户ID不再作为主键了.

ServerID第一位表示州,第二位表示国家,第三位表示第几台服务器. 或者 第一位表示州,第二,三位表示第几台服务器.

新增用户时,各个服务器自己标识用户ID+1.

同步用户数据时ServerID,用户ID才真正标识一个用户.

(照片,评论,个人资料) 这些资料不同步.只同步用户数据.

查找(照片,评论,个人资料) 这些资料时,先从最近的服务器查找到ServerID,假如ServerID是当前服务器,则从当前服务器的数据库拿数据.

假如不是,则跳转到其他服务器的API

时间: 2024-10-31 23:25:26

数据分区考虑的相关文章

解密数据分区

   数据分区分为两种,动态分区和静态分区,那么两种分区是怎样创建的呢?它们各自怎么来使用呢? 一.动态分区 1.从已有的数据动态创建新的分区 2.分区基于最后一个列值自动创建,如果分区不存在,它将被创建: 如果分区存在,将被覆盖. 二.静态分区 1. 静态分区示例:按天分区呼叫日志 Loudacre的客户服务电话系统生成了详细的呼叫日志,分析员使用这些数据来汇总前一天的呼叫量,比如: 日志按天生成,比如: 在上面的的示例中,数据基于列值自动分区.现在我们使用静态分区, 因为数据文件不包含分区数

在Impala 和Hive里进行数据分区(1)

进行数据分区将会极大的提高数据查询的效率,尤其是对于当下大数据的运用,是一门不可或缺的知识.那么数据怎么创建分区呢?数据怎样加载到分区呢? Impala/Hive按State分区Accounts (1)示例:accounts是非分区表 通过以上方式创建的话,数据就存放在accounts目录里面.那么,如果Loudacre大部分对customer表的分析是按state来完成的?比如: 这种情况下如果数据量很大,为了避免全表扫描的发生,我们可以去创建分区.如果不创建分区的话,它会默认所有查询不得不扫

TimesTen 应用层数据库缓存学习:18. 利用TimesTen实现Sharding或数据分区

考虑到恢复和磁盘加载到内存的速度,单个TimesTen数据库可以缓存的数据一般不超过100G,如果需要缓存的数据较大,一般可以利用多个TimesTen来实现数据分区或分片(Sharding). 虽然TimesTen有Cache Grid即Global Cache Group的概念,但由于其还不太成熟,一般采用手工分区的方式,即通过应用服务器定向到指定的TimesTen的方式. 以下给出了只读和读写数据分区的例子. 另外强调一点,TimesTen没有Oracle Partition的概念. Tim

数据分区------《Designing Data-Intensive Applications》读书笔记9

进入到第六章了,我们要开始聊聊分布式系统之中的核心问题:数据分区.分布式系统通常是通过大规模的数据节点来处理单机没有办法处理的海量数据集,因此,可以将一个大型数据集可以分布在多个磁盘上,查询负载可以分布在多个处理器上.在这一章中,我们首先讨论划分大型数据集的不同方法,并观察数据索引如何与分区交互,然后将探索数据分区重新平衡的策略.最后,来看看路由技术怎么将查询索引到正确的分区.内容看起来还不少,我们开始吧. 1. 分区与副本 分区与副本是很容易混淆的概念,我们这里离清一下两者. 数据分区的每个副

进程虚拟地址空间之数据分区存放【转】

转自:http://blog.csdn.net/bullbat/article/details/7318269 作者:bullbat 在前面的<对一个程序在内存中的分析 >中很好的描述了程序在内存中的布局,这里对这个结果做些总结和实验验证.下面以Linux为例(实验结果显示windows上的结果也一样). 我们还是利用前面看到过的这个图,如下图:32位X86机器的内存布局图,内存主要分为栈.堆.BSS段.数据段.代码段5个段.   代码段:代码段(code segment/text segme

A20怎么实现FLASH分区的私有数据在固件升级时不被清除

最近在项目里要实现出厂机身UID的存储,至于保存在哪儿是个问题.在SDK的工具包里有个SN_WERITER的工具,尝试使用多次后发觉此软件有问题,后来电话全志开发人员,他们很确定告诉此工具已经停止维护. 后来就直接在flash分区中将nandj作为不可擦除的分区: 在lichee\tools\pack\chips\sun7i\configs\android\wing-k70\sys_partition.fex中将nandj分区改为如下设置: [partition]    name        

百万级数据mysql分区

1. 什么是表分区? 表分区,是指根据一定规则,将数据库中的一张表分解成多个更小的,容易管理的部分.从逻辑上看,只有一张表,但是底层却是由多个物理分区组成. 2. 表分区与分表的区别 分表:指的是通过一定规则,将一张表分解成多张不同的表.比如将用户订单记录根据时间成多个表. 分表与分区的区别在于:分区从逻辑上来讲只有一张表,而分表则是将一张表分解成多张表. 3. 表分区有什么好处? 1)分区表的数据可以分布在不同的物理设备上,从而高效地利用多个硬件设备. 2)和单个磁盘或者文件系统相比,可以存储

Redis3.0集群crc16算法php客户端实现方法(php取得redis3.0集群中redis数据所在的redis分区插槽,并根据分区插槽取得分区所在redis服务器地址)

数据分区        Redis集群将数据分区后存储在多个节点上,即不同的分区存储在不同的节点上,每个节点可以存储多个分区.每个分区在Redis中也被称为"hash slot",Redis集群中总共规划了16384个分区. 例如:当集群中有3个节点时,节点A将包含0-5460分区,节点B将包含5461-10922分区,节点C将包含10923-16383分区. 每个key将会存储到一个唯一的分区中,每个分区其实就是一组key的集合,两者对应关系为:key的CRC16校验码%16384=

大数据存储的秘密之分区

分区,又称为分片,是解决大数据存储的常见解决方案,大数据存储量超过了单节点的存储上限,因此需要进行分区操作将数据分散存储在不同节点上,通常每个单个分区可以理解成一个小型的数据库,尽管数据库能同时支持多个分区操作:分区引入多分区概念,可以同时对外服务提高性能. 常常和分区一并提及的概念是复制,分区通常与复制结合使?,使得每个分区的副本存储在多个节点上. 这意味着,即使每条记录属于?个分区,它仍然可以存储在多个不同的节点上以获得容错能?.分区在许多技术或框架中都有体现,例如MQ中topic下的分区消