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 ...
随机推荐
- matlab 学习笔记
脚本名称不能与matlab里面的关键字一样.否则会报当MATLAB中报错,“SCRIPT ******”怎么解决 保留已画图形:hold on 矩阵连接:横向 f=[m,n]; 纵向 f=[m;n ...
- Pro C/C++ 编程中值得注意的问题
1.宿主字符串存储Oracle自动补零问题. EXEC SQL BEGIN DECLARE SECTION; unsigned char liId[25]; EXEC SQL END DECLARE ...
- jvm最大线程数
摘自:http://sesame.iteye.com/blog/622670 工作中碰到过这个问题好几次了,觉得有必要总结一下,所以有了这篇文章,这篇文章分为三个部分:认识问题.分析问题.解决问题. ...
- oracle数据库查看用户相关语句
1.查看所有用户: select * from dba_users; select * from all_users; select * from user_users; 2.查看用户 ...
- 转:大数据时代快速SQL引擎-Impala
本文来自:http://blog.csdn.net/yu616568/article/details/52431835 如有侵权 可立即删除 背景 随着大数据时代的到来,Hadoop在过去几年以接近统 ...
- LeetCode OJ:Merge Sorted Array(合并排序的数组)
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note:Yo ...
- react : code splitting
1.webpack config output: { ... chunkFilename: 'js/[name].min.js' ... } optimization: { splitChunks: ...
- BAT级别对照表
- Markdown博文快速转为微信文章
介绍 技术博文在CSDN上,全是Markdown格式,最近看各位大佬又是个人网站又是个人微信公众号,突然发现: "个人博客小站 + 个人微信公众号 + CSDN + 掘金+ - = 程序员标 ...
- 在Ajax.ActionLink的OnBegin,onComplete等事件中使用this【解决办法】
方法就是修改这个文件[jquery.unobtrusive-ajax.js] options.data.push({ name: "X-Requested-With", value ...