"自增变量"型主键的缺陷
- 主键的作用是作为当前这行数据的唯一标识。
- 从前,人们用到的数据量比较小,因此采用"自增变量"作为一行数据的主键
- 然而随着数据量越来越大,问题开始暴露出来:假如有A,B,C三张表,都是"用户注册表"的分表(即A,B,C所有行数据的主键必须不重复,因为他们其实同属于一张表),如果A表要填入新数据,遵循"自增变量"原则,就需要先去询问"用户注册表",查询到最新主键值,再加1,设置为A表新数据的主键值。而一旦负责存放最新主键值的数据库所在服务器出了问题,就意味着A,B,C的业务都无法再进行了。
MongoDB中的主键设置
- MongoDB中的主键以时间戳为基础,以进程编号,服务器名称为后缀,以此保证新数据填入时一定有一个独一无二的标识,从而免去与"用户注册表"的主键查询交互。
网友评论