MySQL优化方法论
MySQL优化方法
主机
操作系统
数据库
应用
MySQL优化理论
吞吐率(Throughput) VS 延时(Latency)
吞吐率: 我们一般使用单位时间内服务器处理的请求数来描述其并发处理能力。
称之为吞吐率(Throughput),单位是 “req/s”。 吞吐率特指Web服务器单位时间内处理的请求数。
延时: 延时是描述操作里用来等待服务的时间。在某些情况下,它可以指的是整个操作时间,等同于响应时间。
例如,一次应用程序请求、一次数据库查询、一次文件系统操作,等等。举个例子,延时可以表示从点击链接
到屏幕显示整个网页加载完成的时间。
目标: 在用户能够接受的延时下,尽可能的提高吞吐量
little’s law
在一个稳定的系统中,平均的客户数等于客户到达该系统的平均速率乘以客户在该系统中花费的平均时间
例如:请求到达率: 1000请求/s
Response time:0.5s
并发量:500
==> 并发量 = 请求到达率(吞吐量)* Response time(延时)
5分钟法则
临近法则
Client请求: 减少数据访问(减少磁盘访问)
network 返回更少数据/减少交互次数(减少网络传输)
APP:ds/code/加机器
DB:Instance/SQL/分库分表 参数:innodb_buffer_pool_size
innodb_flush_log_at_trx_commit
sync_binlog
SQL:开发规范(减少CPU及内存开 销)
执行计划
OS:kernel/limit/fs/std 规范化/标准
主机CPU/MEM/IO/NET
5分钟法则是指如果请求的资源在被第一次访问后的5分钟内,需要再次被访问的,那就要把该数据缓存起来,以提高访问响应时间。
而为什么要缓存呢,就是因为从各个介质上获取数据的时间成本是不一样的,比如常见的几种介质中,cpu缓存最快,内存其次,
硬盘最慢,而硬盘里面则是ssd最快,15000转sas盘其次,7200转更慢等等。
临近法则是指,被请求的资源的临近资源,往往也会被请求。比如数据库,请求一个block或一个page时,其临近的page被请求的概
率也非常高。所以像oracle就有db_file_multiblock_count这样的优化参数设置,而mySQL虽然没有类似的参数,但是默认也是多块读的模式。
高并发系统设计
应用级缓存,http缓存,多级缓存(分布式,热点数据),队列(异步,同步),
扩容(应该扩容,数据库拆分,水平,垂直,数据异构),异步并发,池化(数据库连接池,线程池)

MySQL优化方法论的更多相关文章
- MySQL性能优化最佳实践 - 01 MySQL优化方法论
MySQL优化方法的关键是? MySQL参数优化,innodb_buffer_pool_size/innodb_flush_log_at_trx_commit/sync_binlog SQL开发规范 ...
- MySQL优化聊两句
原文地址:http://www.cnblogs.com/verrion/p/mysql_optimised.html MySQL优化聊两句 MySQL不多介绍,今天聊两句该如何优化以及从哪些方面入手, ...
- 0104探究MySQL优化器对索引和JOIN顺序的选择
转自http://www.jb51.net/article/67007.htm,感谢博主 本文通过一个案例来看看MySQL优化器如何选择索引和JOIN顺序.表结构和数据准备参考本文最后部分" ...
- mysql 优化
1.存储过程造数据 CREATE DEFINER=`root`@`localhost` PROCEDURE `generate_test_data`(`n` int) begin declare i ...
- mysql优化笔记之分页
过年闲得蛋疼,于是看看mysql优化,看了网上好多关于分页的优化方法,但是呢,我亲自试上一把的时候,没有出现他们说的现象...难道是我的机器问题么? 下面看看我的实践记录,希望看到的加入进来交流一下O ...
- MySQL优化概述
一. MySQL优化要点 MySQL优化是一门复杂的综合性技术,主要包括: 1 表的设计合理化(符合 3NF,必要时允许数据冗余) 2.1 SQL语句优化(以查询为主) 2.2 适当添加索引(主键索引 ...
- MySQL优化实例
这周就要从泰笛离职了,在公司内部的wiki上,根据公司实际的项目,写了一些mysql的优化方法,供小组里的小伙伴参考下,没想到大家的热情很高,还专门搞了个ppt讲解了一下. 举了三个大家很容易犯错的地 ...
- Mysql优化系列(2)--通用化操作梳理
前面有两篇文章详细介绍了mysql优化举措:Mysql优化系列(0)--总结性梳理Mysql优化系列(1)--Innodb引擎下mysql自身配置优化 下面分类罗列下Mysql性能优化的一些技巧,熟练 ...
- mysql优化记录
老板反应项目的反应越来越慢,叫优化一下,顺便学习总结一下mysql优化. 不同引擎的优化,myisam读的效果好,写的效率差,使用场景 非事务型应用只读类应用空间类应用 Innodb的特性,innod ...
随机推荐
- git 分支管理 (转自廖雪峰的git教程)
在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支.截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支.HEAD严格来说不是指向提交,而 ...
- socket 关于同一条TCP链接数据包到达顺序的问题
转:http://blog.csdn.net/l1008610/article/details/52197602 以前作者也一直以为数据包先发的不一定先到,直到今天才意识这个问题的缺陷,数据包是不一定 ...
- Nessus离线安装及升级插件 转
修改Nessus Web端口 ./nessuscli fix --set xmlrpc_listen_port=8866 最近做客户的内网主机漏洞扫描,申请了一台内网主机做扫描服务器,安装Nessus ...
- Binary Differences
https://csacademy.com/contest/archive/task/binary-differences n个数,只有0和1,求所有子区间价值不相同的有多少中,价值是0的个数-1的个 ...
- cf 814C 思维
http://codeforces.com/contest/814/problem/C 给定一个字符串s,长度小于1500,进行q次询问q<=20w,每次询问输入一个m和一个字符c,求将最多m个 ...
- 对servlet的 再总结 (精品)
首先 可以通过URL 在浏览器端访问servlet,因为在web.xml中配置了URL与类全名的 映射. 我们初学时,很容易分不清,浏览器端访问的 是jsp页面还是servlet. 其实当我们用浏览 ...
- 关于bind named.conf.options
/etc/named/named.conf.options中的Options参数 listen-on port 53 { any; }; 监听在这部主机系统上面的哪个网路介面.预设是监听在loca ...
- ARM 内核SP,LR,PC寄存器
深入理解ARM的这三个寄存器,对编程以及操作系统的移植都有很大的裨益. 1.堆栈指针r13(SP):每一种异常模式都有其自己独立的r13,它通常指向异常模式所专用的堆栈,也就是说五种异常模式.非异常模 ...
- 《锋利的jQuery》读书笔记(DOM+事件)
前阵子买了一批书,就从锋利的jQuery看起吧,书中一些太过常规以及没有强记必要性的操作就不记录了. 1.DOM加载后执行JS $(document).ready(function(){ //.... ...
- canvas 绘制环形进度条
结果: 代码: <!DOCTYPE html> <html> <head lang="en"> <meta charset="U ...