MySQL基础之第18章 性能优化
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章 性能优化的更多相关文章
- MySQL查询语句执行过程及性能优化(JOIN/ORDER BY)-图
http://blog.csdn.net/iefreer/article/details/12622097 MySQL查询语句执行过程及性能优化-查询过程及优化方法(JOIN/ORDER BY) 标签 ...
- MySQL查询语句执行过程及性能优化-查询过程及优化方法(JOIN/ORDER BY)
在上一篇文章MySQL查询语句执行过程及性能优化-基本概念和EXPLAIN语句简介中介绍了EXPLAIN语句,并举了一个慢查询例子:
- MySQL学习笔记(二)性能优化的笔记(转)
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据 ...
- 高性能MySQL第2,3章性能相关 回顾笔记
1. 基准测试(benchmark) 不管是新手还是专家都要熟悉基准测试,benchmark测试是对系统的一种压力测试,目标是为了掌握在特定压力下系统的行为.也有其他原因:如重现系统状态,或者是 ...
- MySQL查询语句执行过程及性能优化-基本概念和EXPLAIN语句简介
网站或服务的性能关键点很大程度在于数据库的设计(假设你选择了合适的语言开发框架)以及如何查询数据上. 我们知道MySQL的性能优化方法,一般有建立索引.规避复杂联合查询.设置冗余字段.建立中间表.查询 ...
- MySQL学习笔记:select语句性能优化建议
关于SQL中select性能优化有以下建议,仅当笔记记录. 1.检查索引:where.join部分字段都该加上索引 2.限制工作数据集的大小:利用where字句过滤 3.只选择需要的字段:减少IO开销 ...
- MYSQL ini 配置文件详解及性能优化方案
my.ini分为两块:Client Section和Server Section. Client Section用来配置MySQL客户端参数. 要查看配置参数可以用下面的命令: show va ...
- 高性能MySQL(五):查询性能优化
当向MySQL 发送一个请求的时候MySQL 到底做了什么? 1.客户端发送一条查询给服务器 2.服务器先检查查询缓存,如果命中了缓存,则立即返回存储在缓存中的结果.否则进入下一阶段 3.服务器端进行 ...
- MySQL基础之第17章 MySQL日志
17.1.日志简介 二进制日志错误日志通用查询日志慢查询日志 17.2.二进制日志 二进制日志也叫作变更日志(update log),主要用于记录数据库的变化情况.通过二进制日志可以查询MySQL数据 ...
随机推荐
- 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' ...
- jsp中利用checkbox进行批量删除
一.将前台jsp页面中的所有你要用到checkbox的name值设为相同,如 <input type="checkbox" name="userid"&g ...
- x11vnc
http://cisight.com/how-to-setup-vnc-server-remote-desktop-in-ubuntu-11-10-oneiric/ Install VNC serve ...
- MakeObjectInstance的前世今生(关键是ECX的何时入栈以及Self指针何时存储的)
高手们的文章有很大启发,但是总有些小错,也有没交代清楚的,以下是我的理解: 编译器编译MainWndProc的时候,它是一个正常Delphi普通函数,MakeObjectInstance对它做变换是运 ...
- Knight's Trip---hdu3766(马走日求最小走的步数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3766 给你一个x ,y 求出从(0,0)位置到达需要的最小步数每次只能走日型: 下图为暴力bfs得到的 ...
- 【解惑】Java动态绑定机制的内幕
在Java方法调用的过程中,JVM是如何知道调用的是哪个类的方法源代码? 这里面到底有什么内幕呢? 这篇文章我们就将揭露JVM方法调用的静态(static binding) 和动态绑定机制(auto ...
- Centos下修改启动项和网络配置
1.Centos默认是从图形界面启动,需要较多的资源,为了节省资源可以从命令行启动.修改方法如下: /etc/inittab文件,把 代码: id:5:initdefault:这一行,修改成 代码: ...
- 8天学通MongoDB
随笔分类 - MongoDB 双十一来了,别让你的mongodb宕机了 摘要: 好久没过来吹牛了,前段时间一直赶项目,没有时间来更新博客,项目也终于赶完了,接下来就要面临双十一这场惊心动魄的处女秀考验 ...
- 解决Android开发中,ActiveAndroid和Gson同时使用,对象序列化失败的问题
ActiveAndroid是安卓开发常用的ORM框架. Gson则是Google提供的轻量级序列化框架,非常适合Android开发使用. 但这两者同时使用,会产生序列化失败的问题.你通常会收到如下信息 ...
- C# 获取打印机状态
public static string GetPrinterStatus(string PrinterName) { int intValue = GetPrinterStatusInt ...