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 ...
随机推荐
- C语言中链接影响程序的细节
参考:<深入理解计算机系统> 7.61节 链接器如何解析多重定义的全局符号 基本的原则是这样的:对于所有的全局符号,函数和已初始化的全局变量是强符号,未初始化的全局变量是弱符号. Un ...
- 随机森林和adaboost算法(待更新)
Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器).
- 如何让pycharm以py.test方式运行
第一步:进入File—Settings—Python Integrated Tools 发现设置中Default test runner是Unittests 将其改为py.test,点击OK保存 如果 ...
- Node——用http-proxy 做反向代理服务器
时下不少场景,都是申请一个 VPS 主机来托管运行 Web 项目的,小弟我也不例外——购买了一个小型的 CentOS VPS 使用着.在使用的过程中,面临一个问题,就是同一类型的服务端环境还好——但如 ...
- LeetCode OJ:Divide Two Integers(两数相除)
Divide two integers without using multiplication, division and mod operator. If it is overflow, retu ...
- LeetCode OJ:Happy Number(欢乐数)
Write an algorithm to determine if a number is "happy". A happy number is a number defined ...
- Android中Application是什么?
Application是什么? Application和Activity,Service一样,是android框架的一个系统组件,当android程序启动时系统会创建一个 application对象, ...
- Java(Android)线程池妙用
介绍new Thread的弊端及Java四种线程池的使用,对Android同样适用.本文是基础篇,后面会分享下线程池一些高级功能. 1.new Thread的弊端执行一个异步任务你还只是如下new T ...
- react: next-redux-saga
instead of using the Provider component, you can use the withRedux higher order component to inject ...
- css3 伪类
::selection { 选中后的样式 } 链接 p:only-child p的父级只有一个p标签 p:only-of-type p的父级有一个p标签, 但还可以包含其他标签 p:fis ...