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

     

  • 相关阅读:
    并发与高并发(七)-线程安全性-原子性-atomic
    并发与高并发(六)-并发模拟代码
    springboot跨域请求接口示例
    关于Java编码规范
    并发与高并发(五)-并发模拟的三个工具
    springboot整合redis简单示例
    关于码云如何检出项目
    关于自动化打包部署Jenkins的使用和配置
    针对Oracle的一系列操作
    关于Linux下Oracle安装后启动的问题
  • 原文地址:https://www.cnblogs.com/yhq1314/p/10243250.html
Copyright © 2011-2022 走看看