0
点赞
收藏
分享

微信扫一扫

读运维MySQL计划有感1 - mysql默认索引,mysql执行计划,mysql索引分类

眸晓 2022-03-11 阅读 55


(7)ALL: 全表扫描,没有任何索引可以使用时。这是最差的情况,应该避免。

-- explain 
explain select * from f_qa_item where delete_flag = 0 and qa_type = 'choice'

读运维MySQL计划有感1 - mysql默认索引,mysql执行计划,mysql索引分类_存储引擎

当加入索引给qa_type,type All-> ref

读运维MySQL计划有感1 - mysql默认索引,mysql执行计划,mysql索引分类_存储引擎_02

ref:此类型通常出现在多表的 join 查询, 针对于非唯一或非主键索引, 或者是使用了最左前缀规则索引的查询(换句话说,连接不能基于键值选择单行,可能是多行)。

1.普通索引index :加速查找

2.唯一索引

主键索引:primary key :加速查找+约束(不为空且唯一)

唯一索引:unique:加速查找+约束 (唯一)一张表只允许存在一个,比如用户表用户昵称

3.联合索引

-primary key(id,name):联合主键索引

-unique(id,name):联合唯一索引

-index(id,name):联合普通索引

4.全文索引fulltext :用于搜索很长一篇文章的时候,效果最好。

MySQL 5.6 及以后的版本,MyISAM 和 InnoDB 存储引擎均支持全文索引;

5.空间索引spatial :了解就好,几乎不用

读运维MySQL计划有感1 - mysql默认索引,mysql执行计划,mysql索引分类_全文索引_03

mysql-5.1版本之前默认引擎是MyISAM,之后是innoDB

MyISAM diff innoDB:

MyISAM存储引擎的特点是:表级锁、不支持事务和全文索引,适合一些CMS内容管理系统作为后台数据库使用,但是使用大并发、重负荷生产系统上,表锁结构的特性就显得力不从心;

InnoDB存储引擎的特点是:行级锁、事务安全(ACID兼容)、支持外键、不支持FULLTEXT类型的索引(5.6.4以后版本开始支持FULLTEXT类型的索引)。InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全存储引擎。InnoDB是为处理巨大量时拥有最大性能而设计的。它的CPU效率可能是任何其他基于磁盘的关系数据库引擎所不能匹敌的。

mysql聚簇索引、非聚簇索​



举报

相关推荐

0 条评论