Mysql 语句优化
- 通过 show status 命令了解各个 sql 语句的执行频率
格式:Mysql> show [session | global] status;
注:session 表示当前连接
global 表示自数据库启动至今
eg:Mysql> show status;
Mysql> show global status;
Mysql> show status like 'Com_%';
Mysql> show global status like 'Com_%';
**** 判断字段是否需要添加索引,并使用 explain、desc 查看它影响的行数多不多
a、查看慢查询日志
b、通过解析 Sql 语句,判断影响行数
c、通过影响的行数,判断是否需要添加索引,以及索引能否使用
参数说明
Com_xxx 表示 xxx 语句执行的次数:
Com_select:执行 select 操作的次数,一次查询叠加一次
Com_update: 执行 update 操作的次数
Com_insert: 执行 insert 操作的次数,对批量插入只算一次
Com_delete: 执行 delete 删除操作的次数
只针对 innodb 存储引擎
Innodb_rows_read: 执行 select 操作行的次数
Innodb_rows_updated: 执行 update 操作行的次数
Innodb_rows_inserted: 执行 insert 操作行的次数
Innodb_rows_deleted: 执行 delete 操作行的次数
Others:
connections: 连接 Mysql 的次数 (成功、失败都记录)
Uptime 服务器已经工作的秒数
Slow_queries: 慢查询的次数 - 定位执行效率较低的 SQL 语句 (显示详细的执行效率)
a、explain select * from table where id = 1000;
b、desc select * from table where id = 1000;
参数解释:
select_type: 表示 select 的类型。
SIMPLE 表示不使用表连接或子查询
PRIMARY 表示主查询,即外层查询
UNION 表示多个查询合并
SUBQUERY 表示子查询的第一个 select
table: stu 表示结果集的表
type: range 表示表的连接类型,性能不一。
system 表示表仅有一行
const 表示只一行匹配
eq_ref 表示对于前面使用的每一行使用主键和唯一
ref 表示没有使用主键或唯一
ref_or_null 表示没有使用主键和唯一同时对 Null 查询
index_merge 表示索引合并优化
unique_subquery 表示 in 的后面是一个查询主键字段的子查询
index_subsquery 表示非主键子查询
range 表示区间查询
ndex 表示都通过查询索引得到数据
all 表示扫描全表得到的数据(尽量避免)
possible_keys: 表查询是可能使用到的索引
key: 实际使用到的索引
key_len: 索引字段的长度
rows: 扫描行的数量
Extra: Using where、Using index 执行情况说明
其他查询语句:
Mysql> show variables like "%log%";
Mysql> show variables like "%long%" // 慢查询设置的时间
set global slow_query_log='ON'; 启用慢查询;
set global long_query_time=4;
Mysql 语句优化的更多相关文章
- php代码优化,mysql语句优化,面试需要用到的
首先说个问题,就是这些所谓的优化其实代码标准化的建议,其实真算不上什么正真意义上的优化,还有一点需要指出的为了一丁点的性能优化,甚至在代码上的在一次请求上性能提升万分之一的所谓就去大面积改变代码习惯, ...
- MySql基础笔记(二)Mysql语句优化---索引
Mysql语句优化--索引 一.开始优化前的准备 一)explain语句 当MySql要执行一个查询语句的时候,它首先会对语句进行语法检查,然后生成一个QEP(Query Execution Plan ...
- Mysql语句优化
总结总结自己犯过的错,网上说的与自己的Mysql语句优化的想法. 1.查询数据库的语句的字段,尽量做到用多少写多少. 2.建索引,确保查询速度. 3.orm框架自带的方法会损耗一部分性能,这个性能应该 ...
- mysql语句优化原则
有时候发现数据量大的时候查询起来效率就比较慢了,学习一下mysql语句优化的原则,自己在正常写sql的时候还没注意到这些,先记录下来,慢慢一点一点的学,加油! 这几篇博客写的都可以: https:// ...
- mysql语句优化总结(一)
Sql语句优化和索引 1.Innerjoin和左连接,右连接,子查询 A. inner join内连接也叫等值连接是,left/rightjoin是外连接. SELECT A.id,A.nam ...
- Mysql 语句优化技巧
前言 有人反馈之前几篇文章过于理论缺少实际操作细节,这篇文章就多一些可操作性的内容吧. 注:这篇文章是以 MySQL 为背景,很多内容同时适用于其他关系型数据库,需要有一些索引知识为基础. 优化目标 ...
- mysql语句优化方案(网上流传)
关于mysql处理百万级以上的数据时如何提高其查询速度的方法 最近一段时间由于工作需要,开始关注针对Mysql数据库的select查询语句的相关优化方法. 由于在参与的实际项目中发现当mysql表的数 ...
- Mysql语句优化建议
一.建立索引 1)考虑在 where 及 order by 涉及的列上建立索引 2)对于模糊查询, 建立全文索引 3)对于多主键查询,建立组合索引 二.避免陷阱 然而,一些情况下可能使索引无效: 1) ...
- MySQL语句优化方法(简单版)
基础回顾: sql语句是怎么样运行的? 一般来说,客户端发送sql语句到数据库服务器——数据库服务器进行运算并返回结果——客户端显示sql语句运行结果. 在本地运行时以workbench为例,客户端为 ...
随机推荐
- 使用publisher模式控制频繁的UI输出,避免Winform界面假死
http://www.cnblogs.com/Charltsing/p/publisher.html 最近测试task并发任务的效率与线程池的区别,发现了另外一个问题.task建立任务的速度很快,输出 ...
- [options] 未与 -source 1.6 一起设置引导类路径
用ant与eclipse编译Cassandra 1.2.19,出现了“ [options] 未与 -source1.6一起设置引导类路径”的警告,并出现了一些编译错误,提示编译失败,上网找了很 多资料 ...
- Windows之文件夹中打开PowerShell
Windows之文件夹中打开PowerShell 为了解决Windows中在某个路径下使用PowerShell,而不是使用传统的cd命令切换过去,具体做法如下: 方法一 打开文件夹 在文件夹的内容区按 ...
- 【问题解决方案】之 关于某江加密视频swf专用播放器仍无法播放的问题
前言: 从pt上下载了一些语言学习的视频之后一直打不开,百度谷歌了若干种方法仍然无解.无奈放弃. 某日从百度知道里又看到一个方法,试了一下,居然灵了.呜呼哀哉.赶紧记下来. 原方法链接:https:/ ...
- ::class 意思
自 PHP 5.5 起,关键词 class 也可用于类名的解析.使用 ClassName::class 你可以获取一个字符串,包含了类 ClassName 的完全限定名称.这对使用了 命名空间 的类尤 ...
- maven eclipse 第3方包
C:\Users\3510\.m2\repository\myjar install:install-file -Dfile=C:\Users\3510\.m2\repository\myjar\al ...
- Azure系列2.1.15 —— SharedAccessBlobPolicy
(小弟自学Azure,文中有不正确之处,请路过各位大神指正.) 网上azure的资料较少,尤其是API,全是英文的,中文资料更是少之又少.这次由于公司项目需要使用Azure,所以对Azure的一些学习 ...
- Day 6-3 粘包现象
服务端: import socket import subprocess phone = socket.socket(family=socket.AF_INET, type=socket.SOCK_S ...
- java 从键盘录入的三种方法
详细内容连接 https://blog.csdn.net/StriverLi/article/details/52984066
- countByValue
[1,2,3,3]的RDD rdd.foreach(println)---------------------1 2 3 3