18.1、优化简介

SHOW STATUS LIKE ‘value’;
connections                 连接数
uptime                          启动时间
slow_queries                慢查询次数
com_select                   查询操作次数
com_insert                    插入操作次数
com_update                 更新操作次数
com_delete                  删除操作次数

18.2、优化查询

18.2.1、分析查询语句

Explain/desc select;

type:   连接类型
system        表中只有一条记录
const           表中有多条记录,但只从表中查询一条记录
all                对表进行了完整的扫描
eq_ref         表示多表连接时,后面的表使用了unique或PRIMARYKEY
ref               表示多表查询时,后面的表使用了普通索引
unique_subquery 表示子查询中合作了unique或primary key
index_subquery  表示子查询中使用了普通索引
range           表示查询中给出了查询的范围
index           表示对表中索引进行了完整的扫描
possible_key    表示查询中可能使用的索引
key                  表示查询时使用到的索引

18.2.2、索引

1、走单列索引
2、走多列索引
3、不走索引的查询
         Like 以 %开头的不走
         Or 两边的列有一个没有建立索引不走索引
         多列索引第一个字段没有使用不走索引

18.3、优化数据库结构

18.3.1、将字段很多的表分解成多个表

18.3.2、增加中间表

18.3.3、增加冗余字段

反范式

   空间换时间

18.3.4、优化插入记录的速度

1、禁用索引
         ALTERTABLE table DISABLE/ENABLE KEYS;
2、禁用唯一索引
         STUNIQUE_CHECK=0/1
3、优化INSERT语句
         使用 INSERT INTO table (f1,f2….fn) VALUES (v1,v2….vn),
                              (f1,f2….fn) VALUES (v1,v2….vn),
    (f1,f2….fn) VALUES (v1,v2….vn),
    …
         代替多个INSERT INTO

18.3.5、分析、检查和优化表

ANALYZETABLE  table1[, table2…]
         CHECKTABLE  table1[, table2…]
     OPTIMIZE TABLE  table1[, table2…]
         优化文本字段,消除更新操作带来的碎片,减少空间浪费

18.4、优化MySQL服务器

18.4.1、优化服务器硬件

CPU
         磁盘,阵列
         内存
         配置(专用服务器,大内存配置)

18.4.2、优化MySQL参数

my.ini

MySQL基础之第18章 性能优化的更多相关文章

  1. MySQL查询语句执行过程及性能优化(JOIN/ORDER BY)-图

    http://blog.csdn.net/iefreer/article/details/12622097 MySQL查询语句执行过程及性能优化-查询过程及优化方法(JOIN/ORDER BY) 标签 ...

  2. MySQL查询语句执行过程及性能优化-查询过程及优化方法(JOIN/ORDER BY)

    在上一篇文章MySQL查询语句执行过程及性能优化-基本概念和EXPLAIN语句简介中介绍了EXPLAIN语句,并举了一个慢查询例子:

  3. MySQL学习笔记(二)性能优化的笔记(转)

    今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据 ...

  4. 高性能MySQL第2,3章性能相关 回顾笔记

    1.  基准测试(benchmark)   不管是新手还是专家都要熟悉基准测试,benchmark测试是对系统的一种压力测试,目标是为了掌握在特定压力下系统的行为.也有其他原因:如重现系统状态,或者是 ...

  5. MySQL查询语句执行过程及性能优化-基本概念和EXPLAIN语句简介

    网站或服务的性能关键点很大程度在于数据库的设计(假设你选择了合适的语言开发框架)以及如何查询数据上. 我们知道MySQL的性能优化方法,一般有建立索引.规避复杂联合查询.设置冗余字段.建立中间表.查询 ...

  6. MySQL学习笔记:select语句性能优化建议

    关于SQL中select性能优化有以下建议,仅当笔记记录. 1.检查索引:where.join部分字段都该加上索引 2.限制工作数据集的大小:利用where字句过滤 3.只选择需要的字段:减少IO开销 ...

  7. MYSQL ini 配置文件详解及性能优化方案

    my.ini分为两块:Client Section和Server Section.   Client Section用来配置MySQL客户端参数.   要查看配置参数可以用下面的命令: show va ...

  8. 高性能MySQL(五):查询性能优化

    当向MySQL 发送一个请求的时候MySQL 到底做了什么? 1.客户端发送一条查询给服务器 2.服务器先检查查询缓存,如果命中了缓存,则立即返回存储在缓存中的结果.否则进入下一阶段 3.服务器端进行 ...

  9. MySQL基础之第17章 MySQL日志

    17.1.日志简介 二进制日志错误日志通用查询日志慢查询日志 17.2.二进制日志 二进制日志也叫作变更日志(update log),主要用于记录数据库的变化情况.通过二进制日志可以查询MySQL数据 ...

随机推荐

  1. jackson set properties to default value (取消让jackson 赋予默认值)

    you can define it with Integer rather than int or long. define it with a package type. jackson wont' ...

  2. jsp中利用checkbox进行批量删除

    一.将前台jsp页面中的所有你要用到checkbox的name值设为相同,如 <input type="checkbox" name="userid"&g ...

  3. x11vnc

    http://cisight.com/how-to-setup-vnc-server-remote-desktop-in-ubuntu-11-10-oneiric/ Install VNC serve ...

  4. MakeObjectInstance的前世今生(关键是ECX的何时入栈以及Self指针何时存储的)

    高手们的文章有很大启发,但是总有些小错,也有没交代清楚的,以下是我的理解: 编译器编译MainWndProc的时候,它是一个正常Delphi普通函数,MakeObjectInstance对它做变换是运 ...

  5. Knight's Trip---hdu3766(马走日求最小走的步数)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3766 给你一个x ,y 求出从(0,0)位置到达需要的最小步数每次只能走日型: 下图为暴力bfs得到的 ...

  6. 【解惑】Java动态绑定机制的内幕

    在Java方法调用的过程中,JVM是如何知道调用的是哪个类的方法源代码? 这里面到底有什么内幕呢? 这篇文章我们就将揭露JVM方法调用的静态(static binding) 和动态绑定机制(auto ...

  7. Centos下修改启动项和网络配置

    1.Centos默认是从图形界面启动,需要较多的资源,为了节省资源可以从命令行启动.修改方法如下: /etc/inittab文件,把 代码: id:5:initdefault:这一行,修改成 代码: ...

  8. 8天学通MongoDB

    随笔分类 - MongoDB 双十一来了,别让你的mongodb宕机了 摘要: 好久没过来吹牛了,前段时间一直赶项目,没有时间来更新博客,项目也终于赶完了,接下来就要面临双十一这场惊心动魄的处女秀考验 ...

  9. 解决Android开发中,ActiveAndroid和Gson同时使用,对象序列化失败的问题

    ActiveAndroid是安卓开发常用的ORM框架. Gson则是Google提供的轻量级序列化框架,非常适合Android开发使用. 但这两者同时使用,会产生序列化失败的问题.你通常会收到如下信息 ...

  10. C# 获取打印机状态

    public static string GetPrinterStatus(string PrinterName)    {    int intValue = GetPrinterStatusInt ...