正如上一篇中我翻译的那篇文章,关于MySQL数据库优化的宏观介绍,了解到了从大体上来讲,优化MySQL可以从3个角度来讲。那么这一篇文章,则从一个个优化点出发,统计出究竟有多少个地方我们可以来优化MySQL,这样即使是在面试还是工作中遇到问题,都能从宏观+细节上迅速定位问题、给出解决方案,真正做到了既有森林,又看到了树木。

一、优化SQL语句
     优化SELECT语句
     优化子查询,派生表,查看引用和公用表表达式
     优化INFORMATION_SCHEMA查询
     优化性能模式查询
     优化数据更改语句
     优化数据库特权
     其他优化提示

二、优化和索引
     MySQL如何使用索引
     使用主键
     使用外键
     列索引
     多列索引
     验证索引使用情况
     InnoDB和MyISAM Index Statistics Collection
     B树和哈希指数的比较
     使用索引扩展
     优化器使用生成的列索引
     隐形指数
     降序索引

三、优化数据库结构
    优化数据大小
    优化MySQL数据类型
    优化许多表
    MySQL内部临时表使用

四、优化InnoDB表
       优化InnoDB表的存储布局
       优化InnoDB事务管理
       优化InnoDB只读事务
       优化InnoDB重做日志记录
       InnoDB表的批量数据加载
       优化InnoDB查询
       优化InnoDB DDL操作
       优化InnoDB磁盘I / O
       优化InnoDB配置变量
       优化具有许多表的系统的InnoDB

五、优化MyISAM表
       优化MyISAM查询
       MyISAM表的批量数据加载
       优化修复表语句

六、优化MEMORY表

七、了解查询执行计划
       用EXPLAIN优化查询
       EXPLAIN输出格式
       扩展EXPLAIN输出格式
       获取命名连接的执行计划信息
       估计查询性能

八、控制查询优化器
       控制查询计划评估
       优化提示
       可切换优化
       索引提示
       优化器成本模型
       优化器统计

九、缓冲和缓存
       InnoDB缓冲池优化
       MyISAM密钥缓存
       准备声明和存储程序的缓存

十、优化锁定操作
       内部锁定方法
       表锁定问题
       并口插入
       元数据锁定
       外部锁定

十一、优化MySQL服务器
     优化磁盘I / O
     使用符号链接
     优化内存使用
     优化网络使用

十二、测量性能(基准)
     测量表达式和函数的速度
     使用自己的基准
     使用performance_schema测量性能

十三、检查线程信息
       线程命令值
       一般线程状态
       复制主线程状态
       复制从站I / O线程状态
       复制从属SQL线程状态
       复制从连接线程状态
       事件调度器线程状态

这部分内容,是从MySQL官网上扒出来的优化的内容,其实每一个都是一个题目,我们这个阶段能做到的也只是从语句和索引的角度进行,涉及到之后的引擎优化等,需要我们不断地去努力。

喜欢阅读英文原文的同学们,也可以去官网上对应的部分学习,数据库的学习,不要仅仅停留在增删改查的级别上。

【SQL优化】MySQL官网中可优化的层次结构的更多相关文章

  1. 【如何在mysql 官网下载最新版本mysql 数据库】

    方法/步骤   打开百度搜索,输入MySQL,第一个是MySQL官网   点击第一个链接地址,进入MySQL官方网站,单击“Downloads”下载Tab页,进入下载界面   找到Community( ...

  2. mysql官网下载对应的mysql包

    1.  在百度搜索mysql,点击mysql官网上下载mysql的地址 在url直接输入mysql的下载地址也可以:https://dev.mysql.com/downloads/mysql/ 如图: ...

  3. 怎样从Mysql官网下载mysql.tar.gz版本的安装包

     今天学习在Linux上部署项目,用到了Mysql,因此想要下载适用于Linux的安装版本,在Mysql官网找了半天,终于找到怎样下载了,这里写出来,以后大家找的时候就好找了. 第一步:在百度输入My ...

  4. mysql官网下载linux版本安装包

    原文地址:点击打开链接 今天在Linux上部署项目,用到了Mysql,因此想要下载适用于Linux的安装版本,在Mysql官网找了半天,终于找到怎样下载了,这里写出来,以后大家找的时候就好找了. 第一 ...

  5. mysql 官网下载太慢了,来这里!!!

    RT.去官网下载mysql简直是折磨,太慢了!!! 但我还是坚持住了,下载下来了,我自己下载的是 MAC 5.7.27版本,网盘分享下,有需要的自提吧: 链接:https://pan.baidu.co ...

  6. mysql官网下载yum

    1.进入mysql官网 2.下载页面最下方的社区下载 3.找到yum库 下载: 7.安装.rpm[root@test tools]# rpm -ivh mysql80-community-releas ...

  7. Phoenix批量提交优化,官网的demo

    1 Phoenix的批量insert官网代码,最佳实践 try (Connection conn = DriverManager.getConnection(url)) { conn.setAutoC ...

  8. Nmap官网中众多文档如何查看

    打开Nmap(nmap.org)官网后,会看多个关于文档的链接,熟悉之后会发现有三类,Reference Guide,Books,Docs.通过熟悉知道Doc是文档的入口,且下面是对Doc页面的翻译, ...

  9. 关于MySQL在内网中使用另一台机器访问的问题

    要在内网中访问另一台机器的MySQL数据库,需要两步操作 一是把运行MySQL的机器的3306端口打开,最好是能限制访问IP保证安全性. 二是更改MySQL账户的访问权限.MySQL的root账户默认 ...

随机推荐

  1. 【转】glumer Appium + Python环境搭建(移动端自动化)

    最近整理了一下自动化的东西,好久没搭建环境又踩了不少坑,appium的环境搭建比较繁琐,好多同行估计都在环境上被卡死了.分享一下~~ 一.安装JDK,配置JDK环境    百度搜索下载就行,这里分享一 ...

  2. JSP整理

    JSP全称Java Server Pages,是一种动态网页开发技术.它使用JSP标签在HTML网页中插入Java代码.标签通常以<%开头以%>结束. JSP是一种Java servlet ...

  3. 785. Is Graph Bipartite?

    Given an undirected graph, return true if and only if it is bipartite. Recall that a graph is bipart ...

  4. Spark配置参数的三种方式

    1.Spark 属性Spark应用程序的运行是通过外部参数来控制的,参数的设置正确与否,好与坏会直接影响应用程序的性能,也就影响我们整个集群的性能.参数控制有以下方式:(1)直接设置在SparkCon ...

  5. PHP学习和使用总结

    起因 学习和使用PHP也有不少年头了,而自己也在学习和使用其他许多语言.我想通过这个总结来给自己一个交代.另一方面也分享一下开发经验,如何用PHP开发和管理大型的项目. 闲聊 许多人说自己1天学会PH ...

  6. WeakHashMap介绍

    WeakHashMap简介 WeakHashMap 继承于AbstractMap,实现了Map接口.    和HashMap一样,WeakHashMap 也是一个散列表,它存储的内容也是键值对(key ...

  7. 由A到D中间可不止“B、C”

    在电子信息系统的学习中,我们或许早就被告知现实世界是模拟的,而数字化的模拟世界则越来越展现更多的风采.但是所谓的数字和模拟只是相对的而已,你可以把模拟量当做无穷数字量的组合,也可以把数字量当做具有不同 ...

  8. Mininet介绍及安装

    什么是Mininet Mininet是由一些虚拟的终端节点(end-hosts).交换机.路由器连接而成的一个网络仿真器,它采用轻量级的虚拟化技术使得系统可以和真实网络相媲美. Mininet可以很方 ...

  9. HDU 5433 Xiao Ming climbing 动态规划

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5433 Xiao Ming climbing Time Limit: 2000/1000 MS (Ja ...

  10. Scrum Meeting Beta - 1

    Scrum Meeting Beta - 1 NewTeam 2017/11/28 地点:主南201 任务反馈 团队成员 完成任务 计划任务 安万贺 详细讨论Beta阶段的任务和具体分工 了解缓存的相 ...