1. 索引
a. 索引是在数据库表的字段上添加的,为了提高查询效率而存在的一种机制;
b. 相当于目录,可以缩小扫描范围而存在的一种机制;
c. 一张表的一个字段可以添加为一个索引,多个字段也可以添加索引;
d. 没有添加索引的字段,查找的方式是全扫描,一行一行;
e. 只有排序之后的数据才有区间查找的说法(缩小扫描范围就是扫描某个区间)
f. mysql当中的索引是一个 B-Tree 结构,遵循左小右大存放,采用中序遍历;
2. 索引的实现原理(存储的时候会按照索引顺序存储)
T1. PK和unique会自动创建索引;
T2. 任何一张表的任何一条记录都在硬盘上有一个物理存储编号;
T3. mysql中索引是一个单独的对象,不同存储引擎以不同方式存储索引,但都是以 B-Tree 的形式存在(自平衡二叉树);
T4. 添加索引的条件
a. 数据量庞大;
b. 字段经常出现在 where 后面,以条件的形式存在,总是被扫描;
c. 字段很少有DML操作(insert、update、delete),因为DML之后,索引需要重新排序;
建议通过 PK或者unique去查询,索引过多会影响性能;
3. 索引的操作
创建索引:create index 索引名 on 表名(字段名);
删除索引:drop index 索引名 on 表名;
查看索引:百度;
4. 索引的失效
a. 模糊匹配中以“%”开头;
b. 使用or的时候,只有在or两边的字段条件都有索引,才会走索引;
c. 使用复合索引的时候,没有使用左侧的列查找,索引失效;(inde复合(sal,job),where 必须跟 sal 才行);
d. 在 where 当中索引列参加了运算,索引失效;
e. 在 where 当中索引使用了函数;
5. 视图(只有DQL语句才可以创建)
创建视图:create view 视图名 as DQL语句;
删除视图:drop view 视图名;
可以面向视图对象进行增删改查,对视图对象的修改会导致原表被操作;
视图的作用:
可以把反复使用的复杂的sql语句以视图对象的形式新建,在使用时以视图对象的形式使用,简化开发;
面向视图开发的时候,可以像使用table一样,对视图进行增删改查,视图对象操作的数据也是存储在硬盘上不会消失;
6. DBA常用命令
数据库导出:dos窗口下执行
导出数据库:mysqldump 数据库名>导出地址\文件名.sql 用户名(-uroot) 密码
导出某张表:mysqldump 数据库名 表名>导出地址\文件名.sql 用户名(-uroot) 密码
数据库导入:① 创建数据库 ② 使用数据库 ③ source sql文件路径;
标签:数据库,sql,导出,视图,索引,MySQL,where,days.05 From: https://www.cnblogs.com/LinxhzZ/p/16728490.html