Mysql 用 UUID做主键,可行吗?

Louistao 2011-10-28 02:11:22
由于某种限制不能使用自增ID,请问使用UUID可行吗? 效率是不是很低?还有其他办法吗?
...全文
499 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Louistao 2011-10-28
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 acmain_chm 的回复:]

一种设计,就是仍然使用AUTO_INCREMENT为主键,而不显示到用户界面。 比如 SID AUTO_INCREMENT, UID varchar(20) 使用用户定义的规则。
[/Quote]
我是菜鸟,UID 是怎么获得的?
ACMAIN_CHM 2011-10-28
  • 打赏
  • 举报
回复
一种设计,就是仍然使用AUTO_INCREMENT为主键,而不显示到用户界面。 比如 SID AUTO_INCREMENT, UID varchar(20) 使用用户定义的规则。
Louistao 2011-10-28
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 acmain_chm 的回复:]

引用那有没有人采用过系统当前时间+一个特定字符串作为主键的?有人这么干,但极不推荐。 建议还是用AUTO_INCREMENT。引用由于某种限制不能使用自增ID不会是用户坚持吧。建议和用户好好谈谈。 有些用户不愿意ID暴露出来一天的订单有多少。
[/Quote]
你一般遇到这样的情况,也不能使用AUTO_INCREMENT,那你还是会选择UUID吗?
ACMAIN_CHM 2011-10-28
  • 打赏
  • 举报
回复
[Quote]那有没有人采用过系统当前时间+一个特定字符串作为主键的?[/Quote]有人这么干,但极不推荐。 建议还是用AUTO_INCREMENT。[Quote]由于某种限制不能使用自增ID[/Quote]不会是用户坚持吧。建议和用户好好谈谈。 有些用户不愿意ID暴露出来一天的订单有多少。
Louistao 2011-10-28
  • 打赏
  • 举报
回复
那有没有人采用过系统当前时间+一个特定字符串作为主键的?
GIS_Cloud 2011-10-28
  • 打赏
  • 举报
回复
UUID虽然概率上不会出现重复,但是实际上,有个几百万数据就重复很有可能,我一个朋友遇到过,在网上也看过一些关于UUID做为主键的讨论
Louistao 2011-10-28
  • 打赏
  • 举报
回复
文章说并不适合作为主键。。是不是还能找到更优化的方法了?这是不是我的数据库设计有问题了
聪明的一休 2011-10-28
  • 打赏
  • 举报
回复
楼上关于UUID函数的确写得很详细
实际工作中还没遇到过需要使用UUID的情况,需要生成唯一编号时可以考虑
jinguanding 2011-10-28
  • 打赏
  • 举报
回复
推荐文章:

MySQL UUID函数的详解,链接地址:http://www.mysqlops.com/2011/03/01/mysql-uuid.html


读完此篇文章,你自己有主见了!



#****************************************#
MySQL技术及运维自动化网:www.mysqlops.com

新浪微博账号:http://weibo.com/mysqlops
#****************************************#
ACMAIN_CHM 2011-10-28
  • 打赏
  • 举报
回复
可以啊,做为主键效率上影响不是很大。
rucypli 2011-10-28
  • 打赏
  • 举报
回复
为什么要做主键 做普通的也可以
wwwwb 2011-10-28
  • 打赏
  • 举报
回复
可以,UUID唯一
UUID产生的是字符串类型值,固定长度为:36个字符,比整数(比如自增)效率差一些

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧