百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> mysql中的主键分为哪几种
分享文章到:

mysql中的主键分为哪几种

发布时间:09/01 来源:未知 浏览: 关键词:

mysql中的主键分为:1、自增序列;2、UUID函数生成的随机值;3、会员注册的独一性账号名称;4、基于一套机制生成相似自增的值,如序列生成器。

(针对InnoDB引擎)我们实际生产环境大概会使用四类属性作为主键:

(1). 自增序列;

(2). UUID()函数生成的随机值;

(3). 会员注册的独一性帐号名称,字符串类型,一样长度为:40个字符;

(4). 基于一套机制生成相似自增的值,比方序列生成器;

那么我们接下来,再剖析下这四类属性各自作为表主键的优缺陷:

(1)自增序列:从小到大 或从大到小的次序模式增添新值;数据类型也利于停止主键值比力;储备空间占用也相对最小,一样设定为:4个字节的INT类型或 8个字节的BIGINT类型;若是想停止数据水平拆分的话,也可以借助设定mysqld实例的2个参数:auto_increment_increment 和 auto_increment_offset;别的,独一缺陷就是自增序列是一个表级别的全局锁,在5.0系列大规模并发写的时候,因锁开释机制的问题容易显现瓶颈,但是5.1系列做了改善,根本上不存在此问题;

(2)UUID()函数:值为随机性+牢固部分,其值发生是无序的,且统一台效劳器上发生的值雷同部分为77.8%;发生的值字符个数为36,按utf8编码运算,占用的储备空间为36个字节;关于数据水平拆分支撑,无需非凡设定;

(3)使用会员注册的帐号名称,字符串类型,其值的发生依靠会员输入,为此数据根本上为无序增添,字符串的长度也是不定的,只能通过前段技术操纵最短最大长度值的限制,对水平拆分支撑,无需做非凡设定;

(4)序列生成器的架构,相似自增序列,不外需要借助额外的开发工作量,乃至供给一个第三方的效劳,可以躲避自增序列的字增全局锁的问题,提高并发,对数据水平拆分可以更好地支撑;

(5)双主复制架构的概率性碰到的场景:主效劳器的数据施行成功,而没有复制到在线备用效劳器时,出问题的概率确实存在,其他类型的做法,也必需人工干预解决,都无简便且合理的主动化方法,以上四种方法都没法躲避;

通过四种属性值作为主键的优缺陷剖析,乃至对照前面我们论述的主键需要的优异素养,若是不思考水平拆分的问题,带来额外设定上的费事,则自增序列是最好的主键字段选中;会员的注册帐号本身要求独一性且非空的场景下,则可以作为主键字段的选中;若是思考水平拆分的问题,则采纳自增序列生成器的架构,非常易用和可靠的实现方式,发生的值是最好主键字段的选中;

以上就是mysql中的主键分为哪几种的具体内容,更多请关注百分百源码网其它相关文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有150人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板