• 欢迎访问IT乐园(o゚▽゚)o
  • 推荐使用最新版火狐浏览器和Chrome浏览器访问本网站。

mysql 索引类型以及适用场景

database fhy 7年前 (2018-02-08) 5400次浏览 0个评论
文章目录[隐藏]

一、索引类型

1.普通索引

最基本的索引,没有任何限制

2.唯一索引

索引列的值必须唯一,但允许有空值

3.主键索引

主键索引属于一种特殊的唯一索引,不允许有空值

4.单列索引

单个多列索引(组合索引)效率高于多个单列索引

5.最左前缀(Leftmost Prefixing):多列索引

多列索引只有在 where 条件中含有索引中的首列字段时才有效
例如:fname_lname_age 索引

以下的搜索条件 MySQL 都将使用 :
fname_lname_age 索引:firstname,lastname,age;firstname,lastname;firstname,其他情况将不使用

二、根据 sql 查询语句确定创建哪种类型的索引,如何优化查询

选择索引列:
a.性能优化过程中,选择在哪个列上创建索引是最重要的步骤之一。
可以考虑使用索引的主要有两种类型的列:在 where 子句中出现的列,在 join 子句中出现的列。
  
b.考虑列中值的分布,索引的列的基数越大,索引的效果越好。

c.使用短索引,如果对字符串列进行索引,应该指定一个前缀长度,可节省大量索引空间,提升查询速度。

d.利用最左前缀

e.不要过度索引,只保持所需的索引。每个额外的索引都要占用额外的磁盘空间,并降低写操作的性能。
在修改表的内容时,索引必须进行更新,有时可能需要重构,因此,索引越多,所花的时间越长。
MySQL 只对一下操作符才使用索引:<,<=,=,>,>=,between,in, 以及某些时候的 like(不以通配符%或 _ 开头的情形)。


IT 乐园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mysql 索引类型以及适用场景
喜欢 (1)
关于作者:
九零后挨踢男
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址