Mysql 索引汇总

索引有几种

MYSQL的索引主要分为主键索引(PRIMARY KEY),唯一索引(UNIQUE) ,普通索引(INDEX)和全文索引(FULLTEXT) 。

  1. 主键索引:数据记录里面不能有null,内容不能重复,在一张表中不能有多个主键索引。
  2. 普通索引:使用字段关键字建立的索引,主要是提高查询速度。
  3. 唯一索引:字段数据是唯一的,数据内容能为null。一张表中可以添加多个唯一索引。
  4. 全文索引:老版本中只有myisam引擎支持全文索引,(mysql5.5以后InnoDB支持全文索引)。mysql中全文索引不支持中文。一般使用sphinx集合coreseek来实现中文的全文索引。仅适用于 CHAR, VARCHAR和 TEXT列。

索引的建立

  1. 主键索引的创建方式:
ALTER TABLE table_name ADD PRIMARY KEY ( column_name )
  1. 唯一索引的创建方式
ALTER TABLE table_name ADD UNIQUE  (column_name)
CREATE UNIQUE INDEX index_name ON table_name (column_name)
  1. 普通索引的创建方式
ALTER TABLE table_name ADD INDEX index_name ( column_name )
CREATE INDEX index_name ON table_name (column_name)
  1. 全文索引的创建方式
ALTER TABLE table_name ADD FULLTEXT ( column_name )

左前索引原则

最左前缀原则:顾名思义是最左优先,以最左边的为起点任何连续的索引都能匹配上。

左前索引主要是在复合索引中,给两个或多个字段建立了复合索引后。
在sql语句的条件中,只有复合索引前面的字段在条件的前面时,该索引才起作用
例如:复合索引index(a,b),在使用where或者orderby条件时,如果只有条件b的,该索引不会生效,必须有条件a且必须在条件b的前面该索引才会生效。

索引的优缺点

优点

  • 可以保证表中的每一行的数据唯一性
  • 加快数据索引速度
  • 加速表与表之间的连接
  • 在使用分组和排序子句进行数据检索时,有很显著减少查询中分组和排序时间
  • 通过使用索引,可以在时间查询的过程中,使用优化隐藏器,提高系统的性能

缺点

  • 创建索引和维护索引消耗时间,随着数据量的增长而增长
  • 索引需要占用物理空间,除了表数据空间以外,每一个索引还要占用一定的物理空间,如果需要建立聚簇索引,占用空间会更大,如果数据变动,索引也要动态的维护。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值