索引语法

1、创建索引时候 [UNIQUE | FULLTEXT] 关键字是可选的;

1)加上 UNIUQE 就是创建唯一索引(唯一索引,说明改字段不能出现重复数据);

2)加上FULLTEXT 创建的是一个全文索引;

3)不加这两个参数,创建的就是一个常规索引;

2、最后 (index_col_name,...) 是在哪个列上创建索引;

其中 "(index_col_name,...)" 说明一个索引可以关联多个字段;

一个索引只关联一个字段,叫单列索引;一个索引关联多个字段叫组合索引又叫联合索引;

3、索引名命名最好是 idx_表名_字段名;例如 idx_user_name,user表name字段建索引;

SQL性能分析

我们为什么要学习SQL性能分析?因为要对SQL做优化。主要对select语句做优化,其中索引优化占据了主导地位;

SQL执行频率

为什么需要使用SQL执行频率?

比如一个数据库的数据都是以增删改为主,那么我们没有必要对此数据库进行优化,或者优化程度可以放轻;通过SQL执行频率来确定,当前数据增删改查比例,从而确定对应优化方案,如果增删改为主,优化程度可以放轻。

如何查看SQL使用频率?

MySQL客户端连接成功后,通过 show[session|global] status 命令可以提供服务器状态信息。通过如下指令,可以查看当前数据库的 insert,update,delete,select 的访问频次:

注意:一个下划线 ‘_’ 就代表一个字符;这里一共是 7 个字符;

show global status like 'Com_______';  -- 查看当前会话的状态信息

如下图:查看当前数据库它的查询、它的插入、它的更新、他的删除次数是多少:

慢查询日志

为什么要学习慢查询日志?

前面学习的查看SQL执行频率,只能知道哪种SQL执行频率比较高。我们现在需要对SQL进行优化,那么针对哪些SQL语句进行优化呢,此时我们就需要借助数据库的慢查询日志,来定位哪些SQL语句执行效率比较低,从而进行优化。

慢查询日志定义:

慢查询日志记录了所有执行时间超过指定参数(long_query_time,单位:秒,默认10秒)的所有SQL语句的日志。(执行时间超过10秒的SQL会被记录在慢查询日志中)(查看慢查询日志开关show variables like 'show_query_log'; )

MySQL的慢查询日志默认没有开启,需要在MySQL的配置文件(/etc/my.cnf)中配置如下信息:

注意:这个是Linux环境,日志所在位置;

修改慢查询日志配置-具体操作: 

1)通过mysql下的my.ini文件可以找到慢查询日志文件:
slow-query-log=1 //这个是慢查询日志开启,0表示关闭
slow_query_log_file=“MS-PHBDRPNRECXU-slow.log”//这个就是慢查询文件,位置在C:\ProgramData\MySQL\MySQL Server 5.6\data;
long_query_time=2 //这个是超过2秒的操作会记录下来。

2)通过mysql客户端查询一个200万行的表:
select count(*) from tb_sku;
3)这时候打开慢查询日志文件中就会记录下刚才的查询过程。

# Time: 221021 21:25:44
# User@Host: root[root] @ localhost [::1]  Id:     2
# Query_time: 3.017051  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 2000000
SET timestamp=1666358744;
select count(*) from tb_sku;

慢查询日志所在位置:

注意:可能根据版本不同,慢查询日志名不一样;我这边可能日志名不是 show_query_log

索引-性能分析-查看SQL执行频次以及慢查询日志相关推荐

  1. MySQL第8天:MySQL索引优化分析之SQL慢

    MySQL索引优化分析之SQL慢 #编写时间:2017.3.11 #编写地点:广州 性能下降SQL慢,执行时间长,等待时间长的原因有: (1)查询语句写的不合理 (2)索引失效:单值索引.符合索引 ( ...

  2. oracle使用索引和不使用索引性能分析

    首先准备一张百万条数据的表,这样分析数据差距更形象! 下面用分页表数据对表进行分析,根据EMP_ID 字段排序,使用索引和不使用索引性能差距! sql查询语法准备,具体业务根据具体表书写sql语法: ...

  3. SQL Server 无法生成 FRunCM 线程。请查看 SQL Server 错误日志和 Windows 事件日志(转)...

    前言: 今天遇到这个sql服务无法启用 .无法登陆 的情况..在google 百度 搜了一下.发现很多网站都是采集来的数据..(很奇怪这些采集站都那么靠前!) 照着文章里边的方法去试试都不行,,,后来 ...

  4. MySQL 进阶 索引 -- SQL性能分析(SQL执行频率:查看当前数据库的INSERT、UPDATE、DELETE、SELECT的访问频次、慢查询日志、 profile详情、explain)

    文章目录 1. SQL性能分析 1.1 SQL执行频率(可以查看当前数据库SQL的访问频次) 1.2 慢查询日志(可以记录用时较长的SQL) 1.2.1 开启慢查询日志 1.2.2 慢查询日志测试 1 ...

  5. sql性能分析以及sql语句的优化

    sql性能分析的几种方式 SQL执行频率 show [session|global] status like 'com__(七个下划线)_';可以查看当前数据库的INSERT.UPDATE.DELET ...

  6. 小编带你了解oracle使用索引和不使用索引性能分析

    首先准备一张百万条数据的表,这样分析数据差距更形象! 下面用分页表数据对表进行分析,根据EMP_ID 字段排序,使用索引和不使用索引性能差距! sql查询语法准备,具体业务根据具体表书写sql语法: ...

  7. 性能分析之 SQL 性能分析(MySQL)

    在性能分析中,SQL 的分析那是必须的. 不同的库又有着不同的命令,但是总体来说,同一类型的数据库,除了有一些手段上的不同之外,给出的结果基本上都是类似的. 今天说一下 MySQL 的. 每次我都会说 ...

  8. 查询分析300万笔记录_MySQL之慢查询日志

    序言: 很多人谈到SQL优化都头头是道,建索引,explain分析,like全模糊会导致索引失效 云云,于是我想问:优化之前,需要找出数据库中比如超过2s的慢SQL,你是怎么找的?很多人答不上来,要是 ...

  9. suse查看mysql内存使用情况_MySQL 慢查询日志(Slow Query Log)

    4.格式化慢查询日志 结构化慢查询日志就是把慢查询日志中的重要信息按照便于阅读以及按照特定的排序方式来提取SQL. 这种方式有点类似于Oracle中有个tkprof来格式化oracle的trace文件 ...

最新文章

  1. 实验报告Linux操作系统基本命令,linux操作系统实验报告全部.doc
  2. python中删除对象方法的区别_python中delattr删除对象方法的代码分析
  3. 神奇的 Object.defineProperty 解释说明
  4. 【项目管理】CMM能力成熟度模型
  5. C# TabControl中Tab放於左邊並正常顯示TabText(
  6. 插入排序:直接插入排序希尔排序
  7. (23)System Verilog旗语解决资源共享需求
  8. redux-form(V7.4.2)笔记(三)之Flow简介
  9. 一位小创业者血泪史:培养过很多技术大佬,但我还在发传单(转)
  10. python图像增强_使用Python进行图像增强
  11. oracle concepts中文,Oracle Concepts 中英文对照版 (10g R2)
  12. 修改 timezone
  13. java jframe 图标_java怎么修改jframe图标?
  14. ViewPager2撸个3D画廊
  15. java ipv6 转换_Java中Ipv4与Ipv6的转换
  16. favicon.ico在线制作,在线Favicon.ico制作转换工具
  17. potato土豆登录不了_土豆@mz123789【电子竞技赛吧】
  18. 恶意代码分析实战_实验练习
  19. 入职阿里两年的工作总结
  20. win7中能对窗口的排列方法是_win7系统窗口智能排列的操作方法

热门文章

  1. InvalidateRect
  2. 民间借贷利息最新算法,你知道吗
  3. 2021-2027全球与中国金属复合制品市场现状及未来发展趋势
  4. php qconf qconf manage配置
  5. web页面:元素定位
  6. python爬虫多线程书籍_Python爬虫入门【10】:电子书多线程爬取
  7. 什么是JavaScript中的“双波浪号”(~~)运算符? [重复]
  8. java开发spc_Authenticode,SPC和Java CodeSign之间的区别?
  9. 路由协议是什么?路由协议在网络中有哪些作用
  10. python学习笔记3:lambda函数的解析和使用