mysql06-解释计划
什么是解释计划:
使用 EXPLAIN 关键字可以模拟优化器执行 SQL 查询语句,从而知道 MySQL 是
如何处理你的 SQL 语句的。分析你的查询语句或是表结构的性能瓶颈
执行计划的语法
EXPLAIN select * from table1
解释计划包含的列以及其作用

ID 列:描述 select 查询的序列号,包含一组数字,表示查询中执行 select 子句或操作表的顺
序
根据 ID 的数值结果可以分成一下三种情况
id 相同:执行顺序由上至下
id 不同:如果是子查询,id 的序号会递增,id 值越大优先级越高,越先被执行
id 相同不同:同时存在
select__type

type 显示的是访问类型
system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery >
index_subquery > range > index > ALL
System:表只有一行记录(等于系统表),这是 const 类型的特列,平时不会出现,这个也
可以忽略不计
Const:表示通过索引一次就找到了
const 用于比较 primary key 或者 unique 索引。因为只匹配一行数据,所以很快
如将主键置于 where 列表中,MySQL 就能将该查询转换为一个常量

ref
显示索引的哪一列被使用了,如果可能的话,是一个常数。哪些列或常量被用于查找索引列
上的值
================================================
sql 优化
策略 1.尽量全值匹配
策略 2.最左前缀
策略 3.不要在索引列做操作
策略 4.范围查询放最后
策略 5.尽量用覆盖索引,少用select *,尽量访问索引列
策略 6. 尽量不要用不等于
策略 7.not null会用索引列失效,like的左%会使索引失效
策略 8.or.union 比 or 效率高
insert的优化
关闭自动提交,攒一些在提交,也就是批量插入
LOAD DATA INFLIE;
使用 LOAD DATA INFLIE ,比一般的 insert 语句快 20 倍
select * into OUTFILE 'D:\\product.txt' from product_info
load data INFILE 'D:\\product.txt' into table product_info
load data INFILE '/soft/product3.txt' into table product_info
show VARIABLES like 'secure_file_priv'
secure_file_priv 为 NULL 时,表示限制 mysqld 不允许导入或导出。
secure_file_priv 为 /tmp 时,表示限制 mysqld 只能在/tmp 目录中执行导入导出,其他
目录不能执行。
secure_file_priv 没有值时,表示不限制 mysqld 在任意目录的导入导出。
secure_file_priv=''
不恋尘世浮华,不写红尘纷扰
标签:
mysql刷题记录
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
2019-12-09 leetcode-二叉树