Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4449019
  • 博文数量: 1214
  • 博客积分: 13195
  • 博客等级: 上将
  • 技术积分: 9105
  • 用 户 组: 普通用户
  • 注册时间: 2007-01-19 14:41
个人简介

C++,python,热爱算法和机器学习

文章分类

全部博文(1214)

文章存档

2021年(13)

2020年(49)

2019年(14)

2018年(27)

2017年(69)

2016年(100)

2015年(106)

2014年(240)

2013年(5)

2012年(193)

2011年(155)

2010年(93)

2009年(62)

2008年(51)

2007年(37)

分类: Mysql/postgreSQL

2014-03-01 12:03:38

文章来源:
例如:在一个表中user_id和type两个字段唯一确定一条记录,那么在设计中是将这两个字段设计为联合主键呢,还是建立一个逻辑主键id,而将这两个字段设计为唯一索引呢?这两种方式有什么区别?哪个更好呢?

如何建立索引取决于将来你如何使用!如果将来的查询中不需要用到联合索引的话,直接建立主键索引即可,毕竟索引也是需要空间存储的。
索引的区别及建立可以参考这个问题


具体还是要看你的业务需求。
另外说些在读写操作上的区别:
1.主键和符合主键在查询上没什么性能上的区别(前提是索引相同,运用得当)
2.写的性能上是有区别的,因为符合主键会使用更多的block去创建索引,所以在写操作上性能要低一些。

如果你这个表中的主键要作为另外一个表的外键,那么建立一个逻辑主键更合适。
如果没有这个需求,而且你的业务中有很多联合查询使用了 user_id和type,(即:where user_id =? and type = ? 等等),那么联合主键是比较合适,同时也要注意索引的顺序匹配的问题。

肯定是的单键好,因为将来你其他表要映射的一般是这个表的主键


阅读(5927) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

laoliulaoliu2014-12-08 11:26:57

suyuwen1:30多条mysql数据库优化方法,千万级数据库记录查询轻松解决
http://www.ihref.com/read-16422.html

不错呀,实用

回复 | 举报

suyuwen12014-12-06 16:40:55

30多条mysql数据库优化方法,千万级数据库记录查询轻松解决
http://www.ihref.com/read-16422.html