MySQL优化

原创 2016年05月30日 13:31:21

MySQL优化

优化方面:

1、SQL及索引
1)查看mysql是否开启慢查询日志
show variables like 'slow_query_log';
2)设置没有索引的记录到慢查询日志
set global log_queries_not_using_indexes=on;
3)查看超过多长时间的sql进行记录到慢查询日志
show variables like 'long_query_time'
4)开启慢查询日志
set global slow_query_log=on

慢查询日志分析工具:
1、mysqldumpslow mysql 自带工具
2、pt-query-digest

分析有问题的SQL

1、查询次数多且每次查询占用时间长

2、IO大的SQL

3、未命中索引的SQL(每次查询的行数多,命中的函数少)

如何优化

使用explain查询SQL的执行计划

Count()和Max()的优化方法:Max()建立索引,Count(*)与Count(某一列)值会不一样

将子查询优化位join时要注意是否存在一对多的关系(若存在,则会出现重复的可能,可用distinct去重)

group by优化:避免使用临时表查询

limit查询:order by主要为IO问题,主要使用主键或者索引列来进行order by操作


索引的建立:

1、在where从句,group by从句,on从句中出现的列

2、索引字段越小越好

3、离散度大的列放到联合索引的前面

索引维护及优化工具:pt-duplicate-key-checker工具

表结构优化:
如何选择合适的数据类型
最小的数据类型
使用简单数据类型,int比varchar类型在mysql处理上简单
尽可能使用not null 定义字段,设置默认值
尽量少用text类型
表的范式优化:符合第三范式
表的反范式优化
表的垂直拆分(多个字段拆分在不同的表中)
表的水平拆分(表中的行数过多)

配置向导:http://tools.percona.com/wizard


版权声明:本文为博主原创文章,未经博主允许不得转载,转载注明出处。

MySQL优化笔记-整理版

  • 2017年10月21日 21:33
  • 5.69MB
  • 下载

理解MySQL——索引与优化

写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录。如果没有索引,查询将...

mysql参数及其优化

  • 2017年10月11日 16:50
  • 17KB
  • 下载

mysql高级优化 注意超清带目录

  • 2017年11月14日 19:26
  • 70.65MB
  • 下载

MySql+Mybatis+Druid 优化之MyBatis批量删除、更新

业务需求:一次更新/删除多条数据,通常有两种方式:      (1)在业务代码中循环遍历,逐条删除,业务清晰 (2)在sql语句中,循环删除,只操作一次数据库,这个分为两种方式: 方式A:通过循环一个...
  • mayfla
  • mayfla
  • 2017年12月11日 17:04
  • 100

mysql优化笔记(加强版)

  • 2017年11月05日 15:49
  • 15.32MB
  • 下载

mysql优化1

  • 2017年10月26日 16:35
  • 43KB
  • 下载

mysql 查询优化笔记

查询的生命周期:从客户端,到服务器,然后在服务器上进行解析,生成执行计划,执行,并返回结果给客户端。其中“执行”是生命周期中最重要的阶段,大量的检索数据到存储引擎的调用以及调用后的数据处理,包括分组排...

Oracle与MySQL数据库索引设计与优化

  • 2017年10月26日 08:53
  • 58.51MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MySQL优化
举报原因:
原因补充:

(最多只允许输入30个字)