可以这么理解,比如,你的订单表里有很多字段,一般情况只要有个订单号bill_no做主键就可以了,但是,现在要求可能会有补充订单,使用相同的订单号,那么这时单独使用订单号就不可以了,因为会有重复.那么你可以再使用个订单序列号bill_seq来作为区别.把bill_no和bill_seq设成复合主键.即使bill_no相同,bill_seq不同也是可以的.
联合主键的设置方法:
打开navicat工具,连接上mysql服务器,选择完数据库之后,选择一个表右击选择设计表(这里为了演示测试,随便选择一个表即可).
在设计表页面,可以看到当前表的所有字段信息,我们选择的学生表有一个id字段,目前该表没有主键字段.
表button?
CREATE TABLE +button+ (
PRIMARY KEY (+id+),
KEY +index_app_permission_lianhe+ (+permission_id+,+app_id+) USING BTREE,
KEY +index_api_id_dange+ (+api_id+)
主键索引,单独索引,组合索引使用场景及优化
button_name 无索引
查询where条件中:
主键索引:
①.、主键索引与联合索引同时存在,使用主键索引
结论:只要主键索引在,使用主键索引.
联合索引 :
①.、联合索引与单列索引列 同时存在,使用单列索引
结论:索引优先级:主键索引,单列索引,组合索引
? 联合索引中遵从最左侧列原则.
? 当查询条件中出现联合索引中非最左侧索引列,返回结果中含义联合索引中的列或者主键则也使用联合索引.
单个索引:
①.、查询条件中有单列索引,则使用,无不使用.
事例:
联合主键,顾名思义就是多个主键联合形成一个主键组合,体现在联合. (主键原则上是唯一的,别被唯一值所困扰.) 索引可以极大的提高数据的查询速度,但是会降低插入、删除、更新表的速度,因为在执行这些写操作时,还要操作索引文件. 简单的例子 主键A跟主键B组成联合主键 主键A跟主键B的数据可以完全相同(困扰吧,没关系),联合就在于主键A跟主键B形成的联合主键是唯一的.
联合主键体现在多个表上,复合主键体现在一个表中的多个字段
复合主键:
以上就是土嘎嘎小编为大家整理的mysql复合主键怎么用相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!