mysql分布式思维(三)-性能优化之影响mysql性能的因素

影响mysql性能的因素
1.商业需求对性能的影响
     ----->商业需求需要合理
     ----->论坛(小的需求)
               ----->实时统计帖子的总量  select count(*) 即可  如果现在标中已经有千万条记录
        ----->这样的一个查询就会有很大的消耗  成为性能的瓶颈
        ----->帖子的数目专门一张表一个字段来存放,那么该表就会变成高并发
                  即使innodb存储引擎也不行,因为行锁,而帖子数据就只有一行。无法应对高并发操作又会成为瓶颈
     ----->很多的统计信息都是准实时的而不是实时统计
              ----->网站的一些数量信息、分页信息、排序信息等等
                 一般都不是实时的而是准实时的。
     ----->在公司内部应该有一个评估来评估需求是否合理
               ----->产品经理提出新需求的时候,一定要给出预期的收益指标,以备上线后计算投入产出比率
        ----->在项目进行过程中,要详细记录投入(人了、硬件等)
        ----->上线之后实际的收益值
        ----->总结出一些规则和规律
2.系统架构(存储架构)及实现对性能的影响
    ---->数据存储架构要合理(后面会详细讲解 --->特别是分布式的情况)
           ---->架构合理才是雪中送炭的,然后才是其它方面的优化
    ---->你的数据是否都适合放在mysql中
          ----->流水队列数据
   ----->二进制多媒体数据
   ----->超大的文本数据
   ----->其它    文件、图片等等
    ----->是否做适当的缓存
            ---->数据库访问及其频繁的数据  是否做了热点缓存
     ---->数据库Server本身的缓存是否合理使用
     ---->什么样的数据是否放在缓存当中
              ---->热点数据
       ---->系统各种配置及规则数据
       ---->活跃用户的基本信息数据
       ---->准实时的统计信息数据
       ---->...  ....
    ----->数据库设计、数据query语句的实现等等

 3.query语句对数据库性能的影响(后面会详细讲解)
        ---->开发人员不能只关注查询结果不关注查询过程
       --->例:每个用户查询各自相册列表(假设每个列显示10张相片),能够在相片后有留言,
                    我们要查看留言的数量。
      --->方案1:  select id,subject,url from photo where user_id=? limit 10
                        通过第一步的结果循环10次执行select count(*) from photo_comment where photo_id=?
                          --->方案2 : 
                        第一步和上面是一样的
          第二步通过程序拼装上面的到的10个photo_id,通过in查询
          select photo_id,count(*) from photo_comment where photo_id in(?)group by photo_id"
             一次得到10个photo_id所有的回复数量

    ---->简要分析的方案2更简单一些。
 ----->将来要具体看执行计划和性能损耗情况(cpu,io的损耗情况)
 ----->需要了解mysql整个查询的原理,性能损耗情况等情况在后续的章节中会详细讲解。
4.Schema设计对系统性能影响(后续章节也会详细讲解)
      ---->论坛帖子案例(假设现在是高并发的一个论坛系统)
              ---->高并发的论坛最高的并发在哪里?
                  ----->最高的并发是查看帖子标题列表,现在往往帖子标题后面会跟一个作者的昵称
              这里就需要有一个join查询
           ----->在高并发的操作当中是不应该用join查询的
    ----->我们会在帖子表中冗余存放作者昵称
                 ---->违反了范式    ---->现在的设计经常范式和非范式结合使用


5.硬件环境对数据库的性能的影响
    ---->如何去选择服务器
          ---->添加后者购买数据库服务器有什么标准吗
             ---->很多企业在购买服务器的时候需要负责人员提出方案  该方案如何写。
          ----->了解TPC
               ----->TPMC---衡量服务器的处理能力的

    ----->如何去选择具体的硬件
              ---->OLTP系统
                 ---->并发量大,整体数据量多,每次访问数据较少,访问数据比较离散,
           有活跃数据并且比例不大。
          ---->要大的内存活跃数据可以Cache,访问频繁每次访问数据少
           那么对磁盘的IOPS表现要好,吞吐量是次要的。并发高,CPU要求高
    网络交互频繁网络设备要求较高
     ------>OLAP的系统
                ---->数据量大,并发访问不多,每次访问需要检索的数据都比较多,访问集中,
                 没有明显的活跃数据
         ---->尽可能大的磁盘吞吐量,并发不多,CPU要求不高。

    ----->总结:要根据自己系统的特性选择更适合更廉价的硬件设备。

猜你喜欢

转载自394498036.iteye.com/blog/2289844
今日推荐