key,unique index,联合索引

1.key与index

Note that “primary” is called PRIMARY KEY not INDEX. 
KEY is something on the logical level, describes your table and database design (i.e. enforces referential integrity …) 
INDEX is something on the physical level, helps improve access time for table operations. 
Behind every PK there is (usually) unique index created (automatically).

key是主键,更多的指的是逻辑上的事,反应了你的数据表的格式和设计,例如主键,外键就是对数据完整性和唯一性的约束;key 唯一值,不能重复,用来确定某一行的。
而index索引指的是物理层面的东西,有助于提高表的访问,排序速度

 2.unique index

唯一索引是index中的一种,建立了Unique Index表示此列数据不可重复。
一个表只能有一个PRIMARY KEY,但可以有多个UNIQUE KEY

3.使用unique index
CREATE TABLE test
  id int(10) NOT NULL auto_increment, 
  date date NOT NULL, 
  type varchar(100) NOT NULL, 
  sub_type varchar(100) NOT NULL, 
  domain_name varchar(128) NOT NULL, 
  url text NOT NULL, 
  parameters text NOT NULL, 
  hash varchar(100) NOT NULL, 
   PRIMARY KEY  (id), 
  UNIQUE KEY date (date,hash
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 

4.联合索引
当查询条件出现类似这类情况时‘where xx=xx && xx=xx && xx>xx’ 即查询的结果需要通过至少两个维度确定的需要联合索引
索引是key index (a,b,c). 可以支持a ;a,b;a,b,c 3种组合进行查找,但不支持 b,c进行查找 .左优先原则

下面的情况都会用到这个索引:
col_a = “some value”;
col_a = “some value” and col_b = “some value”;
col_a = “some value” and col_b = “some value” and col_c = “some value”;
col_b = “some value” and col_a = “some value” and col_c = “some value”;

对于最后一条语句,mysql会自动优化成第三条的样子

索引原则

1.索引越少越好
原因:主要在修改数据时,第个索引都要进行更新,降低写速度。
2.最窄的字段放在键的左边
3.避免file sort排序,临时表和表扫描.

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值