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缓存,多级缓存(分布式,热点数据),队列(异步,同步),
扩容(应该扩容,数据库拆分,水平,垂直,数据异构),异步并发,池化(数据库连接池,线程池)

 

猜你喜欢

转载自www.cnblogs.com/yhq1314/p/10243250.html
今日推荐