`

Mysql查询优化

 
阅读更多

  11 SQL执行顺序

(7)     SELECT 
(8)     DISTINCT <select_list>
(1)     FROM <left_table>
(3)     <join_type> JOIN <right_table>
(2)     ON <join_condition>
(4)     WHERE <where_condition>
(5)     GROUP BY <group_by_list>
(6)     HAVING <having_condition>
(9)     ORDER BY <order_by_condition>
(10)    LIMIT <limit_number>

 

 

 

mysqlreport 查看数据库的执行情况

 

1 下载 mysqlreport

2 安装的时候报错,因为没有安装DBD

 

解决方式:

shell> perl -MCPAN -e shell 

cpan> install DBI 

cpan> install DBD::mysql 安装成功。

 

3 使用

http://blog.chinaunix.net/uid-24426415-id-77301.html

 

4连接数据库 

perl mysqlreport --user=root --password=111111 --host=192.168.0.231

 

数据如下:

 

Use of uninitialized value $is in multiplication (*) at mysqlreport line 829.
Use of uninitialized value in formline at mysqlreport line 1227.
MySQL 5.1.46-community-  uptime 7 2:5:41        Mon Aug 10 10:50:40 2015

__ Key _________________________________________________________________
Buffer used    13.07M of  25.00M  %Used:  52.27
  Current       4.68M            %Usage:  18.72
Write hit      99.97%
Read hit       99.97%

__ Questions ___________________________________________________________
Total           2.19M     3.6/s
  DMS           2.45M     4.0/s  %Total: 112.00
  -Unknown      2.13M     3.5/s           97.07
  Com_          1.58M     2.6/s           72.05
  COM_QUIT    232.59k     0.4/s           10.62
  QC Hits      52.45k     0.1/s            2.39
Slow 3 s          669     0.0/s            0.03  %DMS:   0.03  Log:  ON
DMS             2.45M     4.0/s          112.00
  INSERT        1.17M     1.9/s           53.30         47.59
  DELETE      957.53k     1.6/s           43.72         39.04
  SELECT      237.60k     0.4/s           10.85          9.69
  UPDATE       65.82k     0.1/s            3.01          2.68
  REPLACE      24.61k     0.0/s            1.12          1.00
Com_            1.58M     2.6/s           72.05
  set_option  911.78k     1.5/s           41.63
  commit      362.44k     0.6/s           16.55
  show_create  75.36k     0.1/s            3.44

__ SELECT and Sort _____________________________________________________
Scan          184.37k     0.3/s %SELECT:  77.60
Range         102.60k     0.2/s           43.18
Full join         123     0.0/s            0.05
Range check         0       0/s            0.00
Full rng join       0       0/s            0.00
Sort scan       1.76k     0.0/s
Sort range      1.60k     0.0/s
Sort mrg pass  10.06k     0.0/s

__ Query Cache _________________________________________________________
Memory usage   15.53M of  18.00M  %Used:  86.29
Block Fragmnt  11.79%
Hits           52.45k     0.1/s
Inserts       129.96k     0.2/s
Insrt:Prune   24.78:1     0.2/s
Hit:Insert     0.40:1

__ Table Locks _________________________________________________________
Waited              1     0.0/s  %Total:   0.00
Immediate     441.17k     0.7/s

__ Tables ______________________________________________________________
Open               12 of  669    %Cache:   1.79
Opened        132.09k     0.2/s

__ Connections _________________________________________________________
Max used          115 of  700      %Max:  16.43
Total         232.95k     0.4/s

__ Created Temp ________________________________________________________
Disk table      8.08k     0.0/s
Table         144.33k     0.2/s    Size:  16.0M
File            1.25k     0.0/s

__ Threads _____________________________________________________________
Running             1 of   32
Cached              8 of   34      %Hit:  99.90
Created           222     0.0/s
Slow                0       0/s

__ Aborted _____________________________________________________________
Clients           707     0.0/s
Connects        2.05k     0.0/s

__ Bytes _______________________________________________________________
Sent            2.46G    4.0k/s
Received      146.85M   239.8/s

__ InnoDB Buffer Pool __________________________________________________
Usage          46.00M of  46.00M  %Used: 100.00
Read hit       99.47%
Pages
  Free              0            %Total:   0.00
  Data          2.94k                     99.90 %Drty:   0.00
  Misc              3                      0.10
  Latched                                  0.00
Reads           1.92G    3.1k/s
  From file    10.16M    16.6/s            0.53
  Ahead Rnd    618194     1.0/s
  Ahead Sql     54258     0.1/s
Writes         62.87M   102.7/s
Flushes         2.00M     3.3/s
Wait Free           0       0/s

__ InnoDB Lock _________________________________________________________
Waits           26345     0.0/s
Current             0
Time acquiring
  Total        743022 ms
  Average          28 ms
  Max             168 ms

__ InnoDB Data, Pages, Rows ____________________________________________
Data
  Reads        44.94M    73.4/s
  Writes        2.12M     3.5/s
  fsync       124.44k     0.2/s
  Pending
    Reads           0
    Writes          0
    fsync           0

Pages
  Created     557.21k     0.9/s
  Read         44.94M    73.4/s
  Written       2.00M     3.3/s

Rows
  Deleted       1.15M     1.9/s
  Inserted      9.48M    15.5/s
  Read          3.02G    4.9k/s
  Updated     114.56k     0.2/s

 

 

 

6 数据库索引使用:

  1)解释查询,用explain来查看sql的执行情况 

  2)使用组合索引,优化多个查询条件 ,最左索引原则的使用,不要重复创建索引

 

7 开启数据库慢日志记录功能,及时监控sql的瓶颈

8 因为建立索引数据的插入和更新速度会变慢,需要估算表中 查询和删改查 各占比例 

  如果查询比例比较大,则建立索引是值得的

9 如果一个查询过慢,需要确定是否是表锁定,用:SHOW PROCESSLIST  

 

10 查询数据库锁表: SHOW OPEN TABLES WHERE In_use > 0;

 

 

分享到:
评论

相关推荐

    MySQL查询优化浅析

    ### MySQL查询优化浅析 #### 重要概念:查询优化 查询优化是数据库管理系统(DBMS)中的关键组件之一,其核心目标在于寻找最有效的查询执行计划,以最小化资源消耗(如CPU时间、I/O操作)并加快数据检索速度。在...

    MySQL查询优化技术_索引.pdf

    MySQL查询优化技术_索引

    MySQL查询优化器的工作原理

    3. 进行基于规则的优化,这是一系列预定义的转换操作,用来优化查询语句。 4. 开展基于成本的优化,也称为统计式优化,这是最复杂且最有决定性的一步。优化器会考虑多种可能的执行计划,并为每个计划计算一个成本...

    mysql查询优化之索引优化

    - **避免全表扫描**:通过优化查询语句,减少不必要的全表扫描,例如,避免在WHERE子句中使用NOT IN、!=、等操作符。 - **监控和分析**:定期检查EXPLAIN计划,分析索引的使用情况,使用MySQL的性能分析工具如pt-...

    MySQL查询优化实践.pdf

    查询优化可以通过优化索引、优化查询语句和优化数据库结构来实现。OLTP 和 OLAP 是两种不同的查询优化方法,OLTP 适用于在线事务处理,而 OLAP 适用于在线分析处理。 OLTP 和 OLAP OLTP 和 OLAP 是两种不同的查询...

    MySQL查询优化技术讲座.pdf

    ### MySQL查询优化技术详解 #### 引言:MySQL查询优化的重要性 在当今互联网时代,网站的速度直接影响用户体验和业务效果。数据库查询效率成为决定网站响应速度的关键因素之一。MySQL作为广泛使用的开源关系型...

    MySQL查询优化系列讲座.rar

    接着,"MySQL查询优化系列讲座之数据类型与效率"强调了正确选择数据类型对于优化查询的重要性。不同数据类型占用的空间、存储效率以及参与计算的方式都不同,选择合适的数据类型可以减少存储需求,提高查询速度。这...

    MySQL查询优化

    本文将深入分析MySQL查询优化的三个主要方向,包括硬件升级、MySQL进程调优以及查询操作优化,并详细介绍如何利用Memcached软件作为第三方缓存工具来进一步优化MySQL查询。 首先,硬件升级是直接提高数据库性能的...

    Mysql查询优化器.rar

    MySQL查询优化器是数据库管理系统中的核心组件,负责解析SQL语句并制定出执行查询的最佳计划。这个过程涉及多个阶段,包括解析、预处理、优化和执行。本资料“Mysql查询优化器.rar”包含了对这一关键主题的深入探讨...

    MySQL查询优化.rar

    4. **减少临时表的使用**:尽量避免在复杂的查询中创建临时表,可以通过优化查询结构或者使用内存临时表来改善性能。 5. **合理使用GROUP BY和ORDER BY**:这两个操作可能导致排序,消耗大量资源。如果可能,应先...

    mysql查询优化的若干

    ### MySQL 查询优化的关键知识点 #### 1. 理解MySQL如何优化LEFT JOIN 在MySQL中,`A LEFT JOIN B` 的实现主要包括以下几个步骤: - **表B依赖于表A**:这意味着表B的处理顺序依赖于表A的存在,确保在处理B之前,A...

    MySQL数据库技术分享 MySQL查询优化浅析 共32页.pdf

    MySQL查询优化是数据库管理中至关重要的一个环节,其目的是通过找到执行SQL语句的最佳路径,以提高查询效率,减少资源消耗。在这个过程中,查询优化器起着核心作用,它会根据代价模型来评估不同的执行计划,并选择...

    MySQl 查询优化

    其次,优化查询语句结构是另一个关键环节。避免在WHERE子句中使用不等式或复杂的表达式,这可能导致无法利用索引。尽量使用JOIN操作替代子查询,因为JOIN的执行计划可能更高效。同时,避免使用SELECT *,明确指定...

    MySQL查询优化实践-最终版.pdf

    在执行查询时,MySQL优化器会根据统计信息和查询条件选择最佳的索引。 对于复杂查询优化,比如涉及多个表连接的查询,应考虑使用连接顺序、索引覆盖和子查询优化等策略。连接顺序对查询性能影响很大,MySQL会选择...

    MySQL查询优化技术讲座[收集].pdf

    7. **查询优化技巧**:除了索引,还可以通过其他方式优化查询,比如减少子查询、避免在WHERE子句中使用函数、使用EXPLAIN分析查询计划等。理解数据库查询执行的逻辑可以帮助找出性能瓶颈。 8. **存储引擎的选择**:...

Global site tag (gtag.js) - Google Analytics