2021/10/23 北京 mysql索引和视图

索引:就是在表字段添加,提高查询效率。(本质是缩小扫描范围)

create index emp_ename_index on emp(ename)
给表emp的字段ename添加索引,索引名为emp_ename_index
drop index emp_ename_index on emp  //删除索引

下面这些情况才适合添加索引,并不是索引越多越好。

1.数据量庞大
2.该字段经常出现在where后面
3.该字段很少DML操作

因为索引需要维护,太多反而会降低系统性能

索引底层的数据结构是B-Tree,左小右大 中序遍历

2021/10/23 北京 mysql索引和视图

 什么?你问我什么是中序遍历

中序遍历先遍历左子树,然后访问根结点,最后遍历右子树
如图所示二叉树,中序遍历结果:DBEAFC

2021/10/23 北京 mysql索引和视图


 在任何数据库,主键都会自动添加索引。

在mysql,字段要是有unique约束也会自动创建索引

索引是一个单独对象,不同的存储引擎索引以不同的形式存在
MyIsAM   .NYI文件中
innoDB   tablespace中
MeMory   内存

索引在有些情况下也会失效的

如ename like '%T'
所以模糊查询尽量避免'%'开头

视图(view)

把复杂又常用的sql语句以视图对象创建,视图存在硬盘上不会消失。

create view emp_view as select * from emp  //创建视图

drop view emp_view  //删除视图

只有DQL语句(查询)才能以view形式创建
视图最大特点就是对视图的CRUD,会导致原表被操作

上一篇:从JDBC到Mybatis


下一篇:数据库调优-04 (特定语句调优、表结构设计优化)