zoukankan      html  css  js  c++  java
  • mysql 查询表并发高时的优化点

         先来看查询的sql 语句:

          select id, t1,t2 from t_table where id in(232922924);

         以上查询语句造成数据库的运行线程高,导致页面响应比较缓慢。那么需要从哪些方面来优化查询sql呢?

         一般优化sql 会从以下几个方面去考虑:

            1.使用组合索引;

               (1)如果是单个索引的话,不但要扫描索引,还有回表取其他字段数据的操作,组合索引的话,就可以全部从索引里取数,不需要回表 ;

              (2)索引并不是越多越好,这个得根据实际情况来衡量,索引固然可以提高select的查询效率,但是对insert,update的效率会降低;

              (3)一边一个表的索引不能超过5个,若太多应考虑将不常用的字段的索引去掉;

            2.加大buffer_pool内存,提高硬盘IO能力;

            3.避免全表扫描;

                  查询语句一定要查询条件避免全表扫描)

            4.拆成小SQL,程序去拼接数据;

                 查询数据简单,用程序来分担查询数据的压力,达到减少高并发发生;

            5.如果时myisam引擎的话,换成innodb引擎;

                 myisam引擎的值缓存索引,不会缓存表数据,没有innodb引擎效果好;

      程序架构方面优化:

          1.增加缓存减少直接查询数据库:

              1.比如增加redis缓存;

              2.增加中间层

         2. sql查询分流:

             1.搞多个从库,select语句平均分流多个库中去查询;

         3.数据库采用集群。

         4.静态资源增加cdn缓存。

             

  • 相关阅读:
    UiPath鼠标操作文本的介绍和使用
    UiPath鼠标操作元素的介绍和使用
    UiPath循环活动Do While的介绍和使用
    UiPath循环活动Do While的介绍和使用
    UiPath循环活动While的介绍和使用
    设计模式之: Decorator(装饰器)模式
    C语言深度解剖读书笔记(1.关键字的秘密)
    HDU 4341 Gold miner (分组背包)
    HDU 3496 Watch The Movie( 二维费用背包)
    Mahout源码MeanShiftCanopyDriver分析之一初识
  • 原文地址:https://www.cnblogs.com/goodtest2018/p/9165090.html
Copyright © 2011-2022 走看看