一、MySQL优化概括

二、SQL优化

实践:

1.查看是否开启了慢查询日志

show variables like 'slow_query_log'

没有开启

2.查看是否开启了未使用索引SQL记录到日志

show variables like '%log%';

没有开启

3.查看慢查询多少秒才记录到日志

show variables like 'long_query_time';

4.查看慢查询日志位置

5.开启上面的一些配置

set global slow_query_log=on;//开启慢查询日志

set global log_queries_not_using_indexes=on;//开启记录没有用索引的SQL到慢查询

set global long_query_time=1;//超过1秒的查询记录到日志

6.MySQL慢查询日志分析工具mysqldumpslow,官方的

7.MySQL慢查询日志分析工具pt-query-digest,第三方、更好。SQL次数、百分比、具体SQL

8.如何分析SQL查询

9.explain实践,查看计划(SQL执行前都有执行计划)

10.具体的SQL优化

(1)count()和Max()的优化

(2)子查询优化

(3)group by的优化

(4)Limit查询的优化

(5)等等

三、索引优化

解释上面3个为什么:

1.一个索引包含了查询的所有列,那么称这个索引为覆盖索引。覆盖索引效率高

2.字段多导致一次索引获取数据量大,IO操作成本就会高

3.怎么知道离散度?select distinct,越高的离散度越好,排前面

重复冗余的索引不仅影响插入而且影响查询

复制粘贴,只要输入密码即可

四、数据库结构优化

1.

innodb中,对于Null的字段需要额外存储,尽量not null

2.垂直拆分

字段很多,拆分多个表,用外键(无论是不是物理上的)关联

3.水平拆分

把数据分到多个结构一致的表里去,上下太长(数据量多)需要水平切割。

五、系统配置优化

1.操作系统方面

表比较多的话,查询会占用文件数

2.MySQL本身配置优化方面

一个网站,点进去 向导式地教你,然后下载配置文件

六、硬件优化

非原创,学习整理

MySQL优化与实践的更多相关文章

  1. MySQL性能优化最佳实践 - 01 MySQL优化方法论

    MySQL优化方法的关键是? MySQL参数优化,innodb_buffer_pool_size/innodb_flush_log_at_trx_commit/sync_binlog SQL开发规范 ...

  2. mysql优化笔记之分页

    过年闲得蛋疼,于是看看mysql优化,看了网上好多关于分页的优化方法,但是呢,我亲自试上一把的时候,没有出现他们说的现象...难道是我的机器问题么? 下面看看我的实践记录,希望看到的加入进来交流一下O ...

  3. 单表60亿记录等大数据场景的MySQL优化和运维之道

    此文是根据杨尚刚在[QCON高可用架构群]中,针对MySQL在单表海量记录等场景下,业界广泛关注的MySQL问题的经验分享整理而成,转发请注明出处. 杨尚刚,美图公司数据库高级DBA,负责美图后端数据 ...

  4. 【转】单表60亿记录等大数据场景的MySQL优化和运维之道 | 高可用架构

    此文是根据杨尚刚在[QCON高可用架构群]中,针对MySQL在单表海量记录等场景下,业界广泛关注的MySQL问题的经验分享整理而成,转发请注明出处. 杨尚刚,美图公司数据库高级DBA,负责美图后端数据 ...

  5. [转载] 单表60亿记录等大数据场景的MySQL优化和运维之道 | 高可用架构

    原文: http://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=209406532&idx=1&sn=2e9b0cc02bdd ...

  6. MySQL优化四(优化表结构)

    body { font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.6; padding-top: 10 ...

  7. 一次浴火重生的MySQL优化(EXPLAIN命令详解)

    一直对SQL优化的技能心存无限的向往,之前面试的时候有很多面试官都会来一句,你会优化吗?我说我不太会,这时可能很多人就会有点儿说法了,比如会说不要使用通配符*去检索表.给常常使用的列建立索引.还有创建 ...

  8. MySQL优化配置之query_cache_size

    原理MySQL查询缓存保存查询返回的完整结果.当查询命中该缓存,会立刻返回结果,跳过了解析,优化和执行阶段.  查询缓存会跟踪查询中涉及的每个表,如果这写表发生变化,那么和这个表相关的所有缓存都将失效 ...

  9. 机智的MySQL优化器 --- is null

    [介绍] 工作的越久越到的的问题越多,就越是觉得一些“老话”历久弥新:由于最近的学习计划是深入的学习一遍MySQL优化器:学习过程中的一些成果 也会发布到这里,一来是为了整理自己已经知道的和新学到的, ...

随机推荐

  1. 5.1、顺序队列(java实现)

    1.实现代码 public class SeqQueue { private final int MaxSize = 8; private int rear; //队尾指针 private int f ...

  2. CTF常用软件/工具

    慢慢更新 整合版: http://www.jz5u.com/Soft/Progra/tool/163275.html/ 各种在线工具以及工具整合 http://www.ctftools.com/ 逆向 ...

  3. IO流——File类(文件流类)

    java语言的输入输出操作是借助于输入输出包java.io来实现的,按传输方向分为输入流与输出流,从外设传递到应用程序的流为输入流,将数据从应用程序输入到外设的流为输出流. File类的构造方法: 1 ...

  4. Elasticsearch(8) --- 聚合查询(Metric聚合)

    Elasticsearch(8) --- 聚合查询(Metric聚合) 在Mysql中,我们可以获取一组数据的 最大值(Max).最小值(Min).同样我们能够对这组数据进行 分组(Group).那么 ...

  5. PacMan 01——玩家移动

    版权申明: 本文原创首发于以下网站: 博客园『优梦创客』的空间:https://www.cnblogs.com/raymondking123 优梦创客的官方博客:https://91make.top ...

  6. [PySpark] 01 - Preview parquet files in S3 ×××

    本系列基于实际测试数据,质量保证,不自欺欺人. 实践是检验真理的唯一标准. Swipejobs is all about matching Jobs to Workers. Your challeng ...

  7. Windows导出文件夹中的文件名列表

    在需要导出的目录中,shift+右键,打开cmd或者powershell 运行命令:dir -name >list.txt 刷新文件夹,打开list.txt

  8. Python学习-while循环&逻辑运算符

    一.while循环,continue.break语句在while循环中的使用 1.while循环语句: while 条件:     代码块 执行过程:判断条件是否为真,如果为真,执行代码块,继续下次循 ...

  9. 深度学习论文翻译解析(五):Siamese Neural Networks for One-shot Image Recognition

    论文标题:Siamese Neural Networks for One-shot Image Recognition 论文作者: Gregory Koch   Richard Zemel Rusla ...

  10. Linux-----centos6.2---安装Linux的流程

      1.安装命令 # yum install mysql-server mysql 2.查看是否安装正确 # chkconfig --list mysqld 3.启动 (1).启动服务: # serv ...