一个系统中数据库往往会成为性能瓶颈,在开发阶段更多考虑的可能是功能的完成,随着系统的投入使用,数据量越来越大,sql语句查询速度慢的问题就会被凸显出来。

对于一个有sql语句性能为题的系统,如何找出问题,解决问题,就是下面要探讨的内容:

1. 查看sql执行频率:

Mysql客户端连接成功以后,通过show [session|global] status命令可以提供服务器状态信息,show session status显示当前连接的统计结果,show global status显示自数据库上次启动至今的统计结果,如果不写默认参数是session.

我们关心的信息可以通过下面这个语句获取到

Show status like ‘com_______’;(com后面是六个下划线作为占位符)

它可以查询出com开头的信息。这查询的是当前连接的统计结果,如果想查全局可以使用:

Show global status like ‘com______’;

Com_**指的是相应语句执行的次数,它会对所有存储引擎的表操作进行统计,有几个数据比较重要:

Com_select 执行查询的次数,每次查询累加1

Com_insert 执行插入操作的次数,没插入一条数据累加1,批量插入也累加1

Com_update 执行更新操作的次数

Com_delete 执行删除操作的次数

show status like ‘Innodb_rows_%’;

这个命令可以显示针对Innodb存储引擎的信息

Innodb_rows_read:select查询返回的行数,

Innodb_rows_inserted 插入的条数

Innodb_rows_updated 更新的条数

Innodb_rows_deleted删除的条数

Connections:试图连接MySql服务器的次数

Uptime:服务器工作时间

Show_queries:慢查询的次数

通过这两个命令我们可以看到当前系统是查询占主要地位还是插入占主要地位,为我们的后续优化提供一个方向

2. 定位低效率的sql:

可以通过两种方法来定位低效率的sql

1) 慢查询日志,可以通过慢查询日志来定位到那些执行速度慢的sql语句,但是慢查询日志是在查询结束之后再记录,并不能实时反映sql语句执行的状态。

2) show processlist:通过这个命令可以实时的看到当前mysql在执行的线程,包括线程的执行状态,可以看到sql语句执行的状态

Id:用户登录时系统分配的连接id

User:显示当前登录用户,这个命令只显示当前登录用户权限范围内的sql语句

Host: 显示这个sql语句是由哪个ip的哪个端口发出的。

Db:显示这个进程连接的是哪个数据库

Command:显示当前连接执行的是什么命令,一般有休眠(Sleep),查询(Query),连接(Connection)等

Time:显示这个状态持续的时间,单位是秒

State:显示当前sql语句执行状态,比如查询语句可能经过如下状态:copying to tmp table、sorting result、sending data

Info:显示这个sql语句,通过它可以判断问题

mysql 插入当前时间_MySql优化之前期探索相关推荐

  1. MySQL插入数据很慢优化思路

    MySQL插入数据很慢优化思路 解决方法与思路 解决方法与思路 插入数据量非常大的场景 加大mysql配置中的bulk_insert_buffer_size,这个参数默认为8M bulk_insert ...

  2. java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)...

    转载地址:http://www.devba.com/index.php/archives/4581.html java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明); ...

  3. mysql java 日期格式化_(转)java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)...

    java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明);部分资料参考网络资源 1. java向MySQL插入当前时间的四种方式 第一种:将java.util.Date ...

  4. mysql字段简索引_MySQL优化看这一篇就够了

    本文概要 概述 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 如何优化 ...

  5. java向MySQL插入当前时间的几种方式

    今天插数据的时候发现了一种更简单的时间插入,分享给大家 1.这是最常见的一种时间格式转换 Date date = new Date();//获得系统时间.SimpleDateFormat sdf = ...

  6. 【mysql时区问题】mysql插入数据时间显示错误

    前天在进行数据库操作的时候,发现了一个问题(备注:使用的工具是datagrip),我新添加了一条数据到数据库,然后到数据库查看,发现创建时间比我插入的时间少了13个小时,但是请求返回的时候,返回的时间 ...

  7. mysql插入数据中文_mysql插入中文数据的方法

    mysql插入中文数据的方法 发布时间:2020-09-04 09:26:29 来源:亿速云 阅读:92 作者:小新 小编给大家分享一下mysql插入中文数据的方法,相信大部分人都还不怎么了解,因此分 ...

  8. mysql插入语句例句_MySQL 插入/添加数据语句(INSERT INTO)用法详解

    MySQL 插入数据操作使用 INSERT INTO 语句,它属于 DML(数据操作语言)范畴,该语句插入方式支持从简单的添加操作到唯一键(唯一索引)冲突时的更新操作,同时也支持查询结果直接插入操作. ...

  9. mysql 查询慢 分析_MySQL优化:定位慢查询的两种方法以及使用explain分析SQL

    一条SQL查询语句在经过MySQL查询优化器处理后会生成一个所谓的执行计划,这个执行计划展示了具体执行查询的方式,比如多表连接的顺序是什么,对于每个表采用什么访问方法来具体执行查询等等. 本章的内容就 ...

最新文章

  1. [转载]Eclipse.ini的相关说明
  2. python 生成时间序列
  3. 类与对象 格式小结 java 1202
  4. Git如何进行版本回退
  5. 垂直搜索引擎完整实现
  6. sql 获取数据库字段信息_使用DBATools获取SQL数据库详细信息
  7. 监听独立于数据库服务器的配置,解决ORA-12520及ORA-12545错误
  8. I2c驱动i2c_master_send()和i2c_master_recv()用法
  9. Android-Universal-Image-Loader学习笔记(4)--download
  10. c语言如何交替打印大小写字母,C/C++语言实现两个线程交替打印奇偶数
  11. 如何学习单片机?单片机c语言编程入门教程
  12. C++图像缩放(StretchBlt,StretchDIBits,双线性内插法)
  13. oso kabuwj severe conime 美女病毒 重要文件.exe : 通过移动设备引发的血案...
  14. [VCS] coverage hierachy exclude
  15. 大陆身份证号码格式校验
  16. 计算机两个活动分区,硬盘无法设置活动分区,硬盘只能有一个活动分区吗
  17. Python中 list[:]与 list 的区别
  18. 安卓从Flickr获取Json数据
  19. 北京的味道-胡赳赳电子书下载
  20. 安装MathType后,在word打开后有警告提示。

热门文章

  1. how to consume a webservice via ABAP proxy
  2. when I enter ZSOCIAL role FM RH_STRUC_GET to get organization units that a given user belongs to
  3. 如何debug 右键菜单执行逻辑 - Test BSP Application page implementation
  4. E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)
  5. 编译c语言程序时 程序中的注释部分将,C语言程序编译时,程序中的注释部分将 答案:不参加编译,也不会出现在目标程序中...
  6. linux查文件的前几行,Linux--查询文件的第几行到第几行命令
  7. python自学课堂_python怎么自学要那本书
  8. Access把每一天的数据累加_7天学会Power BI分析淘宝数据
  9. Java学习规划及就业规划(本人大三)
  10. 在python中len表示的数据类型是_python基本数据类型学习