MySQL 学习四 SQL优化

MySQL逻辑架构:

  第一层:客户端层,连接处理,授权认证,安全等功能。

    第二层:核心层,查询解析,分析,优化,缓存,内置函数(时间,数学,加密),存储过程,触发器,视图

    第三层:存储引擎。负责MySQL中数据的存储和提取。

  

MySQL查询过程

  客户端/服务端通信协议:

  

  

  

  
  

  

  

1 学习使用EXPLAIN

???

2 创建正确的索引

  数据库的索引像书的索引一样,他们的位置信息被保存,并且包含数据库的主要信息。可以使用EXPLAIN来查找

缺失的索引。

3 拒绝默认的设置:有三个关于MySQL性能优化的设置:

  innodb_buffer_pool_size:数据和索引被用作缓存的缓冲池。当数据库服务器有大量的系统内存时,可以用。

这个设置不要过大,也不要频繁的引起交换。

  innodb_log_file_size:单个InnoDB日志文件大小。

  max_connections:最大连接数

4 将数据库载入内存

  将频繁访问的数据放入内存(比如30%的数据放入内存)

5 SSD存储

6 横向扩展??

  纵向扩展

  横向扩展

7 追求可视化

  数据库受到流量负荷的影响,应用程序等导致的错误,为了快速、有效的解决问题,需要有监控机制。

  常用的监测工具:    MySQL企业监控器 /  Monyog /    Percona

  

  

  

  

  

  

        

  

  

原文地址:https://www.cnblogs.com/liufei1983/p/9221423.html

时间: 2024-08-01 15:25:24

MySQL 学习四 SQL优化的相关文章

MySQL学习笔记—SQL服务器模式汇总

MySQL学习笔记-SQL服务器模式汇总 MySQL服务器可以以不同的SQL模式来操作,并且可以为不同客户端应用不同模式.这样每个应用程序可以根据自己的需求来定制服务器的操作模式. 模式定义MySQL应支持哪些SQL语法,以及应执行哪种数据验证检查.这样可以更容易地在不同的环境中使用MySQL,并结合其它数据库服务器使用MySQL. 你可以用–sql-mode="modes"选项启动mysqld来设置默认SQL模式.如果你想要重设,该值还可以为空(–sql-mode ="&q

MySql学习(六) —— 数据库优化理论(二) —— 查询优化技术

逻辑查询优化包括的技术 1)子查询优化  2)视图重写  3)等价谓词重写  4)条件简化  5)外连接消除  6)嵌套连接消除  7)连接消除  8)语义优化 9)非SPJ优化 一.子查询优化 1. 什么是子查询:当一个查询是另一个查询的子部分时,称之为子查询. 2. 查询的子部分,包含的情况: a) 目标列位置:子查询如果位于目标列,则只能是标量子查询,否则数据库可能返回类似“错误:子查询只能返回一个字段 ( [Err] 1242 - Subquery returns more than 1

【MySQL笔记】SQL优化利器 - explain命令的输出格式详解

有MySQL使用经验的同学在实际项目中可能会遇到SQL慢查询的场景,有些场景很容易定位问题所在(如单表操作有慢查询SQL时,仔细check SQL语句通常很容易定位索引问题),而有些复杂业务场景下(如多表联合查询几十个字段并做group或sort等操作),人工check SQL语句通常很难发现SQL瓶颈根源.这个时候,MySQL提供的explain命令就派上用场了. 本笔记主要对explain的输出结果做说明,并给出根据explain输出对SQL做优化的思路. 1. EXPLAIN语法及用途 e

MYSQL学习笔记——sql语句优化之索引

上一篇博客讲了可以使用慢查询日志定位耗时sql,使用explain命令查看mysql的执行计划,以及使用profiling工具查看语句执行真正耗时的地方,当定位了耗时之后怎样优化呢?这篇博客会介绍mysql中最简单快速的优化方法——添加索引. 一.索引的添加                                                                              mysql一共有四类索引,分别是主键索引.唯一索引.普通索引以及全文索引. 1.1.主

MYSQL学习笔记——sql语句优化工具

前面讲解了很多mysql的基础知识,这一章讲解mysql的语句优化. 一.定位慢查询                                                                                 我们要对sql语句进行优化,第一步肯定是找到执行速度较慢的语句,那么怎么在一个项目里面定位这些执行速度较慢的sql语句呢?下面就介绍一种定位慢查询的方法. 1.1.数据库准备 首先创建一个数据库表: CREATE TABLE emp (empno MED

MySQL专题3 SQL 优化

这两天去京东面试,面试官问了我一个问题,如何优化SQL 我上网查了一下资料,找到了不少方法,做一下记录 (一). 首先使用慢查询分析  通过Mysql 的Slow Query log 可以找到哪些SQL运行很慢.耗时间  在my.ini中: long_query_time=1 log-slow-queries=d:\mysql5\logs\mysqlslow.log 把超过1秒的记录在慢查询日志中 可以用mysqlsla来分析之.也可以在mysqlreport中,有如 DMS分别分析了selec

MySql学习(五) —— 数据库优化理论篇(一)

一.数据库管理系统 数据库管理系统(Database Management System, DBMS) 衡量是否是数据库的标准: ACID:是指在数据库管理系统(DBMS)中事务所具有的四个特性: 1) 原子性(Atomicity) 2) 一致性(Consistency) 3)隔离性(Isolation) 4)持久性(Durability) 1.关系型数据库:是建立在关系数据库模型基础上的数据库,借助于关系代数等概念和方法来处理数据库中的数据,同时也是一个被组织成一组拥有正式描述性的表格,该形式

MySql学习(四) —— 函数、视图

注:该MySql系列博客仅为个人学习笔记. 本篇博客主要涉及MySql 函数(数学函数.字符串函数.日期时间函数.流程控制函数等),视图. 一.函数 1. 数学函数 对于数学函数,若发生错误,所有数学函数会返回 NULL 1.1  abs(x)  返回x的绝对值 1.2  bin(x)  返回x的二进制数 1.3  oct(x)  返回x的八进制数 1.4  hex(x) 返回x的十六进制数 1.5  ceiling(x) 返回大于x的最小整数值 1.6  floor(x) 返回小于x的最大整数

MySQL 5.6 SQL 优化特性

http://blog.chinaunix.net/uid-259788-id-4146363.html http://www.cnblogs.com/Amaranthus/p/4028687.html   MYSQL 5.6手册 http://www.cnblogs.com/hustcat/category/214566.html   YY哥 http://blog.163.com/li_hx/blog/static/18399141320150253652874/ 那海蓝蓝 http://t