mysql数据库优化课程---15、mysql优化步骤

一、总结

一句话总结:索引优化最立竿见影

1、mysql中最常用最立竿见影的优化是什么?

索引优化

索引优化,不然有多少行要扫描多少次,1亿行大概是5到10分钟,和列的存量有关系

2、show status的作用是什么?

执行频率

了解各种sql的执行频率

通过show status命令了解各种SQL的执行频率。
格式:mysql> show [session|global]status;
其中:session(默认)表示当前连接,
global表示自数据库启动至今
mysql>show status;
mysql>show global status;
mysql>show status like ‘Com_%’;
mysql>show global status like ‘Com_%’;

• 参数说明:
• Com_XXX表示每个XXX语句执行的次数如:
– Com_select 执行select操作的次数,一次查询只累计加1
– 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操作的次数
• 其他:
– connections 连接mysql的数量
– Uptime 服务器已经工作的秒数
– Slow_queries:慢查询的次数

3、定位执行效率较低的SQL语句?

explain select
desc select

1)explain select * from table where id=1000;
2)desc select * from table where id=1000;

1.explain或desc定位一条sql语句的影响行数.
mysql>desc select * from user where username='user8'\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: user
   partitions: NULL
         type: ALL
possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 11
     filtered: 10.00
        Extra: Using where

4、检查服务器增、删、改和查的使用频次:(本次启动以来)?

show status

show status like "%Com_update%";
show status like "%Com_insert%";
show status like "%Com_select%";
show status like "%Com_delete%";

5、查innodb自启动以来的影响行数?

show status

mysql> show status like "%InnoDB_rows%";
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| Innodb_rows_deleted  | 2     |
| Innodb_rows_inserted | 0     |
| Innodb_rows_read     | 105   |
| Innodb_rows_updated  | 3     |
+----------------------+-------+

6、如何知道一个程序中的哪些sql语句的执行效率很慢?

慢查询日志
explain desc

1.explain或desc定位一条sql语句的影响行数.
mysql>desc select * from user where username='user8'\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: user
   partitions: NULL
         type: ALL
possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 11
     filtered: 10.00
        Extra: Using where

2.查看mysql的慢查询日志.
1)查看慢查询日志是否开启
show variables like "%quer%";

slow_query_log  | ON
slow_query_log_file | mysql-slow.log
long_query_time | 10.000000

2)查看慢查询的次数
show status like "%quer%";
Slow_queries | 0

二、内容在总结中

推荐mysql书籍:
网易专家DBA: 《深入浅出Mysql》

1.SQL语句优化
1)优化SQL语句的一般步骤
2)索引优化
3)check与optimize使用方法
4)常用SQL的优化

检查服务器增、删、改和查的使用频次:(本次启动以来)
show status like "%Com_update%";
show status like "%Com_insert%";
show status like "%Com_select%";
show status like "%Com_delete%";

查innodb自启动以来的影响行数:
mysql> show status like "%InnoDB_rows%";
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| Innodb_rows_deleted  | 2     |
| Innodb_rows_inserted | 0     |
| Innodb_rows_read     | 105   |
| Innodb_rows_updated  | 3     |
+----------------------+-------+

定位执行效率较低的SQL语句:
1.explain或desc定位一条sql语句的影响行数.
mysql>desc select * from user where username='user8'\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: user
   partitions: NULL
         type: ALL
possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 11
     filtered: 10.00
        Extra: Using where

2.查看mysql的慢查询日志.
1)查看慢查询日志是否开启
show variables like "%quer%";

slow_query_log  | ON
slow_query_log_file | mysql-slow.log
long_query_time | 10.000000

2)查看慢查询的次数
show status like "%quer%";
Slow_queries | 0

3.修改慢查询的时间(my.ini)
long_query_time=6

4.重启mysql服务器
net stop mysql57
net start mysql57

优化表空间:
optimize table sales;
1.myisam表没有问题.
2.innodb表ibdata1文件无法回收空间.

 

mysql数据库优化课程---15、mysql优化步骤的更多相关文章

  1. 重新学习MySQL数据库5:根据MySQL索引原理进行分析与优化

    重新学习MySQL数据库5:根据MySQL索引原理进行分析与优化 一:Mysql原理与慢查询 MySQL凭借着出色的性能.低廉的成本.丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库.虽然性能 ...

  2. Mysql数据库调优和性能优化

    1. 简介 在Web应用程序体系架构中,数据持久层(通常是一个关系数据库)是关键的核心部分,它对系统的性能有非常重要的影响.MySQL是目前使用最多的开源数据库,但是mysql数据库的默认设置性能非常 ...

  3. Mysql数据库调优和性能优化的21条最佳实践

    Mysql数据库调优和性能优化的21条最佳实践 1. 简介 在Web应用程序体系架构中,数据持久层(通常是一个关系数据库)是关键的核心部分,它对系统的性能有非常重要的影响.MySQL是目前使用最多的开 ...

  4. MySQL性能调优与架构设计——第9章 MySQL数据库Schema设计的性能优化

    第9章 MySQL数据库Schema设计的性能优化 前言: 很多人都认为性能是在通过编写代码(程序代码或者是数据库代码)的过程中优化出来的,其实这是一个非常大的误区.真正影响性能最大的部分是在设计中就 ...

  5. MySQL数据库服务器整体规划(思路与步骤)

    MySQL数据库服务器整体规划(思路与步骤) 参考资料: http://blog.51cto.com/zhilight/1630611 我们在搭建MySQL数据库服务器的开始阶段就合理的规划,可以避免 ...

  6. MySQL数据库集群进行正确配置步骤

    MySQL数据库集群进行正确配置步骤 2010-06-09 10:47 arrowcat 博客园 字号:T | T 我们今天是要和大家一起分享的是对MySQL数据库集群进行正确配置,我前两天在相关网站 ...

  7. mysql 数据库导入数据报错MySQL server has gone away解决办法

    mysql 数据库导入数据报错MySQL server has gone away解决办法: 进入数据库执行以下命令即可: set global wait_timeout = 2880000; set ...

  8. mysql数据库的安装以及常见优化设置

    原文请详见:http://www.ucai.cn/blogdetail/7036?mid=1&f=5 能够在线执行查看效果哦! 本文依据优才网课程整理,面向web开发人员,内容以有用为主,专业 ...

  9. MySQL性能调优与架构设计——第10章 MySQL数据库Schema设计的性能优化

    第10章 MySQL Server性能优化 前言: 本章主要通过针对MySQL Server(mysqld)相关实现机制的分析,得到一些相应的优化建议.主要涉及MySQL的安装以及相关参数设置的优化, ...

随机推荐

  1. jenkins用户管理(Role-based Authorization Strategy插件使用)

    安装:Role-based Authorization Strategy插件 一.点击左侧的"系统管理"-->再点击绿色的"管理插件"  二.点击&quo ...

  2. BD面试题1-两个大文件中找出公共记录[转载]

    转自:https://blog.csdn.net/tiankong_/article/details/77234726#commentBox 1.题目 给定a.b两个文件,各存放50亿个url,每个u ...

  3. [转]linux shell 获取当前正在执行脚本的绝对路径

    原文链接:http://sexywp.com/bash-how-to-get-the-basepath-of-current-running-script.htm 常见的一种误区,是使用 pwd 命令 ...

  4. mysql数据库从删库到跑路之mysql存储引擎

    一 什么是存储引擎 mysql中建立的库===>文件夹 库中建立的表===>文件 现实生活中我们用来存储数据的文件应该有不同的类型:比如存文本用txt类型,存表格用excel,存图片用pn ...

  5. 003-spring boot项目的项目属性配置

    一.application.properties文件. 1.项目的配置文件内容.配置了端口,超时连接时间, 2.控制器. 3.访问. 二.application.yml文件 1.application ...

  6. 【转】深入浅出UML类图

    转自:http://www.cppblog.com/API/archive/2013/07/04/201506.html 在UML 2.0的13种图形中,类图是使用频率最高的UML图之一.Martin ...

  7. Winter-2-STL-F Ananagrams 解题报告及测试数据

    Time Limit:3000MS     Memory Limit:0KB  Description Most crossword puzzle fans are used to anagrams- ...

  8. (译)Windows Azure:移动后端开发的主要更新

    Windows Azure:移动后端开发的主要更新 这周我们给Windows Azure释出了一些很棒的更新,让云上的移动应用开发明显的简单了.这 些新功能包括: 移动服务:定制API支持移动服务:G ...

  9. Linux下编程学习一

    本篇主要记录一些在学习LINUX下编程时,, C和C++语言的一些基础的常识, 一. 函数指针 void MyFun(int x); 函数声明 void (*FunP)(int ); 函数指针声明 下 ...

  10. ThinkPHP5执行流程分析

    1.入口文件(tp5\public\index.php) 作用: 1)定义目录常量. 2)加载框架引导目录. 2.框架引导目录(tp5\thinkphp\start.php) 作用: 1)引导基础文件 ...