Mysql高级课程笔记

索引 

 

 

 

 视图

我理解的视图就是一条 查询语句的封装 


 

CREATE VIEW user_view 
AS SELECT username FROM user ;

SELECT * FROM user_view	;

 

 

存储过程

查询存储过程

 

删除存储过程 

 

声明变量 

DECLARE 

SET

 

SELECT  INTO 

 IF

传递参数

输出

WHILE

REPEAT

游标

触发器

 MYSQL体系结构

存储引擎

InnoDB

 INNODB在Linux中实际存储位置 /var/lib/mysql

frm为表结构文件

ibd为数据文件

MyISAM

不支持事务 查询快

 文件存储方式

 

Memory 

Merge 

 

存储引擎的选择

SQL优化

查看SQL执行频率

定位效率低执行SQL

 

从上往下 效率越来越低

 

 

  

-- 查看当前系统是否支持profile工具
SELECT @@have_profiling;

-- 查看是否开启profiling工具 1开启 0为开启
SELECT @@profiling;

-- 开启profiling
SET profiling = 1;

-- 开启优化器, 输出格式为JSON
SET optimizer_trace="enabled=on",end_markers_in_json=on;
-- 占用内存大小
SET optimizer_trace_max_mem_size=1000000

-- 查看日志

SELECT * FROM information_schema.OPTIMIZER_TRACE;
 

查询索引从最左列开始, 不能跳过索引列

联合索引 范围查询之后的字段索引失效!

索引列进行运算 所有将失效

隐式类型转换会使索引失效 因为底层造成了索引字段运算

using index conition 用到了索引但是需要回表查询

 

使用复合索引解决模糊匹配, 只查询索引列

 

 

 

 

 

Load批量插入

 数据需要是有序的

 关闭唯一性校验

 

优化Insert

分页优化

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/weixin_42195284/article/details/108937730