zoukankan      html  css  js  c++  java
  • 优化接口性能

    基本场景设定:InnoDB引擎,一张单表有 300多万条数据,字段为:id(主键)、name、time、value。

    试验场一:

    -》Mysql语句:SELECT * from gw_yl_real_data where name = '人民广场东街上海路'  

    -》查询结果:查询数据:50261  ;平均耗时:12.479s

    试验场二:

    -》Mysql语句:SELECT * from gw_yl_real_data where name in ('人民广场东街上海路','正源街宝湖路',胜利街明达巷',六盘山路正源街',怀远西路北民大附中') 

    -》查询结果:查询数据:251319;平均耗时:12.528s

    试验场三:

    -》Mysql语句:SELECT * from gw_yl_real_data where name = '人民广场东街上海路' and time = '2020-11-04 05:29:00'

    -》查询结果:查询数据:1;平均耗时:12.327s

    试验场四:

    -》Mysql语句:SELECT * from gw_yl_real_data where name in ('人民广场东街上海路','正源街宝湖路','胜利街明达巷','六盘山路正源街',怀远西路北民大附中') and time = '2020-11-04 05:29:00'

    -》查询结果:查询数据:5;平均耗时:12.467s

    试验场五:使用name建立普通索引

    -》Mysql语句:SELECT * from gw_yl_real_data where name = '人民广场东街上海路' 

    -》查询结果:查询数据:50261;平均耗时:12.626s

    试验场六:使用name + time建立唯一索引

    -》Mysql语句:SELECT * from gw_yl_real_data where name = '人民广场东街上海路'  

    -》查询结果:查询数据:50261;平均耗时:354.092s

    试验场七:使用name + time建立唯一索引

    -》Mysql语句:SELECT * from gw_yl_real_data where name = '人民广场东街上海路' and time = '2020-11-04 05:29:00'

    -》查询结果:查询数据:1;平均耗时:0.032s

    结论:

    1.对比试验一和二、试验三和四可知,查询一个或者多个,使用 in 来查询效率并没有降低。

    2.对比试验三和七可知,建立唯一组合索引后查询速度显著提高。

    3.对比试验一和六可知,不适当的索引反而会拖慢查询速度(原因待确定),试验六中索引被使用,但是查询效率反而极大地降低了。

    4.对比试验一和五可知,普通索引对单表查询速度无用。EXPLAIN 分析试验五,发现使用了索引,并且只扫描了104000行,试验一则扫描了全部的3170076行,但是查询速度差不多(原因待确定)。

     

  • 相关阅读:
    ioctl()函数详解
    傻孩子菜单框架
    高级套接口-(sendmsg和recvmsg)
    Linux内核Socket CAN中文文档
    第二节 信息系统服务管理
    第一节 信息化知识
    关系数据库标准语言SQL——概述
    SQL分组函数
    如何将web项目部署到weblogic
    范式
  • 原文地址:https://www.cnblogs.com/momoweiduan/p/13943830.html
Copyright © 2011-2022 走看看