MYSQL索引类型以及失效原因

Mysql常见索引类别有:主键索引、唯一索引、普通索引、全文索引、组合索引(也有称为复合索引)
PRIMARY KEY(主键索引) ALTER TABLE table_name ADD PRIMARY KEY ( column )
UNIQUE(唯一索引) ALTER TABLE table_name ADD UNIQUE (column)
INDEX(普通索引) ALTER TABLE table_name ADD INDEX index_name ( column )
FULLTEXT(全文索引) ALTER TABLE table_name ADD FULLTEXT ( column )
组合索引 ALTER TABLE table_name ADD INDEX index_name ( column1, column2, column3 )
Mysql各种索引区别:
普通索引:最基本的索引,没有任何限制
唯一索引:与"普通索引"类似,不同的就是:索引列的值必须唯一,但允许有空值。
主键索引:它 是一种特殊的唯一索引,不允许有空值。
全文索引:仅可用于 MyISAM 表,针对较大的数据,生成全文索引很耗时好空间。
组合索引:为了更多的提高mysql效率可建立组合索引,遵循”最左前缀“原则。
最左前缀原则:顾名思义,最左优先,比如,我们建立了一个以(a,b,c)为组合的索引,那么将会得到:a, ab,abc三种索引。
若我们按列“b”进行查找,或者按列(bc)查找,都不会使用到索引,只有以上三种索引可以使用。

哪些情况索引会失效:
like查询是以%开头
查询条件使用or的话,要保证or两边的列都要有索引,否则索引失效(对没有索引的列会全表扫描)
组合索引 不满足最左前缀要求,索引失效
索引列字符串类型,WHERE条件为数字型时,索引失效
在索引字段上使用 not 、!= 时会失效
如果mysql估计使用全表扫描要比使用索引快,则不使用索引
在索引字段使用is null 或 is not null时,索引有时候会失效(值少的时候)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值