sql索引和分析

索引:可以很大程度长提高SQL性能
索引不是越多越好,而是有效性

索引的分类:
1、主键索引
2、唯一索引
3、普通索引
4、复合索引
索引创建的格式:
create index 索引名称 on 表(字段)

SQL性能分析:
1、慢查询
可以通过配置实现数据库对于执行慢的sql语句进行记录
在mysql的配置文件中:
slow_query_log 启用慢查询
slow_query_log_file 对于慢查询的sql语句
slow_launch_time 慢查询的时间

通过慢查询可以知道哪些SQL需要优化
2、进行SQL优化
1、索引
2、顺序
3、条件
4、*
5、大小写
6、读写分离(MyCat、SS)
3、分析SQL执行过程
explain 对查询语句进行执行分析
结果说明:
id 序号
select_type 查询类型
取值:
simple 简单查询
union 一般指的是使用union关键字
primary 一般只联合查询
table 表名
type 访问类型
取值:
all 全表扫描
const/system 类似常量查询 system 只要一条数据
ref 通过索引查到了数据
eq_ref 唯一索引或多表连接处索引
index 只检索索引库
range 范围
possible key 列出查询条件对应的索引,不一定是起作用
key 起作用的索引
key_len 索引使用的字节数 越短越好
ref 索引生效的时候对应的引用类型
rows 估算查询出来的结果数量
extra 查询的详情
取值:
using index 索引
using where 都需要通过执行引擎进行过滤

常用的SQL优化工具:
1、SQLAdvisor
美团 的sql优化分析工具

你可能感兴趣的:(sql索引和分析)