Mysql的执行计划
执行计划简单来说就是一条sql语句的执行过程。
判断加没加索引就要用到执行计划。
如何运用执行计划?
在sql语句前加一个 explain 就可以了。
例:
列含义可看mysql官方文档(8.0地址):https://dev.mysql.com/doc/refman/8.0/en/explain-output.html
关键列:
type:最起码达到range级别
key:有没有用到索引
extra:额外信息,帮助了解执行效率
索引
用途:提高查询效率。
索引和实际的数据都是存储在磁盘的,只不过在进行数据读取的时候会优先把索引加载到内存中。
client
server
存储引擎:不同的数据文件在磁盘的不同组织形式
数据表存在磁盘中的这个位置
每个文件为每一个表
innodb引擎中(5.1之后默认innodb引擎):
.frm 表示表结构
.ibd 表示索引文件加数据文件共同存储
myisam引擎中:
.frm 表示表结构
.MYD 表示数据
.MYI 表示索引
索引格式:K-V 数据结构 hash表 无序的
树
B+树 为什么选择B+树? 一般情况下3-4层的B+树足以支撑千万级别树数据存储