免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: jieforest
打印 上一主题 下一主题

[大话IT]MySQL使用自增ID和UUID的优劣势比较 [复制链接]

论坛徽章:
2
2015年迎新春徽章
日期:2015-03-04 09:55:28IT运维版块每日发帖之星
日期:2016-07-29 06:20:00
21 [报告]
发表于 2015-08-28 10:14 |只看该作者
在Innodb引擎下,使用uuid做主键, 绝对是一个坑跌的选择.

论坛徽章:
0
22 [报告]
发表于 2015-08-28 17:11 |只看该作者
楼主看来是吃过亏的,可否讲下?
1.是否占用空间太多
2.碎片,插入,查询速度慢?
3.是从上述两个点分析的么
回复 21# ning_lianjie


   

论坛徽章:
32
CU大牛徽章
日期:2013-05-20 10:45:13每日论坛发贴之星
日期:2015-09-07 06:20:00每日论坛发贴之星
日期:2015-09-07 06:20:00数据库技术版块每日发帖之星
日期:2015-12-13 06:20:0015-16赛季CBA联赛之江苏
日期:2016-03-03 11:56:13IT运维版块每日发帖之星
日期:2016-03-06 06:20:00fulanqi
日期:2016-06-17 17:54:25IT运维版块每日发帖之星
日期:2016-07-23 06:20:0015-16赛季CBA联赛之佛山
日期:2016-08-11 18:06:41JAVA
日期:2016-10-25 16:09:072017金鸡报晓
日期:2017-01-10 15:13:292017金鸡报晓
日期:2017-02-08 10:33:21
23 [报告]
发表于 2015-09-04 14:23 |只看该作者
回复 7# fender0107401


    还没有。MySQL有UUID这个函数

论坛徽章:
32
CU大牛徽章
日期:2013-05-20 10:45:13每日论坛发贴之星
日期:2015-09-07 06:20:00每日论坛发贴之星
日期:2015-09-07 06:20:00数据库技术版块每日发帖之星
日期:2015-12-13 06:20:0015-16赛季CBA联赛之江苏
日期:2016-03-03 11:56:13IT运维版块每日发帖之星
日期:2016-03-06 06:20:00fulanqi
日期:2016-06-17 17:54:25IT运维版块每日发帖之星
日期:2016-07-23 06:20:0015-16赛季CBA联赛之佛山
日期:2016-08-11 18:06:41JAVA
日期:2016-10-25 16:09:072017金鸡报晓
日期:2017-01-10 15:13:292017金鸡报晓
日期:2017-02-08 10:33:21
24 [报告]
发表于 2015-09-04 14:24 |只看该作者
回复 10# stay_sun


    UUID不会重复的,这个在算法层面是得到保证了的,无需担忧这个。

论坛徽章:
32
CU大牛徽章
日期:2013-05-20 10:45:13每日论坛发贴之星
日期:2015-09-07 06:20:00每日论坛发贴之星
日期:2015-09-07 06:20:00数据库技术版块每日发帖之星
日期:2015-12-13 06:20:0015-16赛季CBA联赛之江苏
日期:2016-03-03 11:56:13IT运维版块每日发帖之星
日期:2016-03-06 06:20:00fulanqi
日期:2016-06-17 17:54:25IT运维版块每日发帖之星
日期:2016-07-23 06:20:0015-16赛季CBA联赛之佛山
日期:2016-08-11 18:06:41JAVA
日期:2016-10-25 16:09:072017金鸡报晓
日期:2017-01-10 15:13:292017金鸡报晓
日期:2017-02-08 10:33:21
25 [报告]
发表于 2015-09-04 14:29 |只看该作者
回复 15# fuzhufang


    “产生唯一id,用一个专门的库,它作为唯一id的产生源; 里面有N张表,每张表最多 M 条记录。每张表的id 是自增的。...”
    这种方法不够好,用一个专门的库,它作为唯一id的产生源,这样做的话,原先只需访问一次数据库的I/O操作,现在会变成两次。数据库的I/O往往容易形成系统的性能瓶颈。所以这种方法适用于企业级的开发,并发要求不高的场景。不适用于互联网业务。

论坛徽章:
18
2015亚冠之阿尔希拉尔
日期:2015-06-02 09:56:10数据库技术版块每日发帖之星
日期:2016-08-13 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-03-19 06:20:00数据库技术版块每日发帖之星
日期:2015-12-25 06:20:35数据库技术版块每日发帖之星
日期:2015-12-25 06:20:35数据库技术版块每日发帖之星
日期:2015-12-25 06:20:35数据库技术版块每日发帖之星
日期:2015-09-12 06:20:00数据库技术版块每日发帖之星
日期:2015-09-11 06:20:00ChinaUnix专家徽章
日期:2015-06-30 16:29:48ChinaUnix专家徽章
日期:2015-06-30 16:29:342015年中国系统架构师大会
日期:2015-06-29 16:11:28
26 [报告]
发表于 2015-09-08 13:41 |只看该作者
回复 24# jieforest


    uuid  有几率出现重复 而且 有人用的时候也出现过重复

论坛徽章:
32
CU大牛徽章
日期:2013-05-20 10:45:13每日论坛发贴之星
日期:2015-09-07 06:20:00每日论坛发贴之星
日期:2015-09-07 06:20:00数据库技术版块每日发帖之星
日期:2015-12-13 06:20:0015-16赛季CBA联赛之江苏
日期:2016-03-03 11:56:13IT运维版块每日发帖之星
日期:2016-03-06 06:20:00fulanqi
日期:2016-06-17 17:54:25IT运维版块每日发帖之星
日期:2016-07-23 06:20:0015-16赛季CBA联赛之佛山
日期:2016-08-11 18:06:41JAVA
日期:2016-10-25 16:09:072017金鸡报晓
日期:2017-01-10 15:13:292017金鸡报晓
日期:2017-02-08 10:33:21
27 [报告]
发表于 2015-09-08 17:14 |只看该作者
回复 26# stay_sun


    UUID的标准是RFC4122,见:https://tools.ietf.org/html/rfc4122
    标准中明确说了,”A UUID is 128 bits long, and can guarantee uniqueness across space and time.“
    在实际使用环境中不可能遇到UUID重复的情况。如果遇到了,那么是UUID本身的实现算法出现了Bug,比如自己写了一个UUID实现类。

论坛徽章:
18
2015亚冠之阿尔希拉尔
日期:2015-06-02 09:56:10数据库技术版块每日发帖之星
日期:2016-08-13 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-03-19 06:20:00数据库技术版块每日发帖之星
日期:2015-12-25 06:20:35数据库技术版块每日发帖之星
日期:2015-12-25 06:20:35数据库技术版块每日发帖之星
日期:2015-12-25 06:20:35数据库技术版块每日发帖之星
日期:2015-09-12 06:20:00数据库技术版块每日发帖之星
日期:2015-09-11 06:20:00ChinaUnix专家徽章
日期:2015-06-30 16:29:48ChinaUnix专家徽章
日期:2015-06-30 16:29:342015年中国系统架构师大会
日期:2015-06-29 16:11:28
28 [报告]
发表于 2015-09-09 09:33 |只看该作者
回复 27# jieforest


    uuid 重复的几率小  但不是没有的  你可以查询下 虽然是 十几亿分之一   
概率 永远是不可靠的  也许有可能的话 你用俩条  就重复了  剩下 你用1000亿  没有重复   谁知道呢

论坛徽章:
32
CU大牛徽章
日期:2013-05-20 10:45:13每日论坛发贴之星
日期:2015-09-07 06:20:00每日论坛发贴之星
日期:2015-09-07 06:20:00数据库技术版块每日发帖之星
日期:2015-12-13 06:20:0015-16赛季CBA联赛之江苏
日期:2016-03-03 11:56:13IT运维版块每日发帖之星
日期:2016-03-06 06:20:00fulanqi
日期:2016-06-17 17:54:25IT运维版块每日发帖之星
日期:2016-07-23 06:20:0015-16赛季CBA联赛之佛山
日期:2016-08-11 18:06:41JAVA
日期:2016-10-25 16:09:072017金鸡报晓
日期:2017-01-10 15:13:292017金鸡报晓
日期:2017-02-08 10:33:21
29 [报告]
发表于 2015-09-09 10:11 |只看该作者
回复 28# stay_sun


    你这话太外行了,首先不会重复,其次由于计算机是在随机数算法方面是模拟随机数方式,再加上UUID本身算法的保证,即使有重复,也是万万亿分之一的概率,甚至更小。
    十几亿条记录就有重复,根本就没法投入生产环境。

论坛徽章:
0
30 [报告]
发表于 2015-09-09 10:12 |只看该作者
1、MySQL单数据库服务器的情况,使用自增ID和UUID各自的优缺点。
目前从我们项目的使用情况看,自增Id正在陆续被UUID替代。
主要是因为自增ID进行条件查询的时候,性能不如UUID的好,而且自增ID到达边界的时候,还需要专门处理很费事

2、MySQL服务器小规模集群(5台数据库服务器以内,主-主集群和主-从集群)的情况,能否使用自增ID,如何避免自增ID的主键冲突。
我们目前没有开启集群,不清楚

3、MySQL单数据库服务器、MySQL服务器小规模集群的情况下,使用自增ID和UUID各自的性能情况。
我们测试的结果是遍历时自增> UUID。条件查询UUID > 自增ID

4、MySQL中大规模集群,如何能够更好地使用UUID,是否有更好的方法。
目前不涉及集群,不发音~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP