zoukankan      html  css  js  c++  java
  • mysql实战优化之二:limit优化(大表翻页查询时) sql优化

    mysql的表test中有20105119行数据。
    建立索引:data_status,place_cargo_status

    场景1:

    SELECT
    id,
    resource_id,
    resource_type,
    ...
    F_OMCS_LINK_GET_DAY_BY_WORKDAY('2017-03-13',arrive_work_day,send_work_day,1,cargo_arrive_time),
    load_zone_code,
    cargo_send_batch,
    F_OMCS_LINK_GET_DAY_BY_WORKDAY('2017-03-13',send_work_day,send_work_day,2,cargo_arrive_time),
    cargo_arrive_next_batch,
    F_OMCS_LINK_GET_DAY_BY_WORKDAY('2017-03-13',send_work_day,arrive_next_work_day,3,cargo_arrive_time),
    next_zone_code,
    ...
    FROM
    test
    WHERE
    data_status=1 and place_cargo_status=1
    LIMIT 0,10000

    结果:查询时间为:7.360s

    场景1:

    SELECT
    id,
    resource_id,
    ...
    F_OMCS_LINK_GET_DAY_BY_WORKDAY('2017-03-13',arrive_work_day,send_work_day,1,cargo_arrive_time),
    load_zone_code,
    cargo_send_batch,
    F_OMCS_LINK_GET_DAY_BY_WORKDAY('2017-03-13',send_work_day,send_work_day,2,cargo_arrive_time),
    cargo_arrive_next_batch,
    F_OMCS_LINK_GET_DAY_BY_WORKDAY('2017-03-13',send_work_day,arrive_next_work_day,3,cargo_arrive_time),
    ...
    FROM
    test
    WHERE
    data_status=1
    LIMIT 0,10000

    结果:查询时间为:7.111s

    场景三:

    select * from test
    WHERE
    data_status=1 and place_cargo_status=1
    LIMIT 0,10000

    结果:查询时间为0.141s
    场景四:

    select * from test
    WHERE
    data_status=1
    LIMIT 0,10000

    查询时间为0.140s

    查看执行计划:

    场景四的执行计划:

    优化一:

    如上type=all,是因为data_status是varchar型的,为其加单引号后,如下:

    优化二:使用主键翻页,

     测试结果如下:

    select * from tt_lk_place_cargo where data_status='1' and id between  20000000 and 20030000;

    结果:使用时间0.381s

     

  • 相关阅读:
    [Redis知识体系] 一文全面总结Redis知识体系
    MySQL数据导入到ClickHouse
    docker本地搭建clickhouse
    【linux】修改宝塔默认的PHP CLI版本
    windows 10 安装go环境
    docker安装centos8
    Bootstrap 简洁、直观、强悍的前端开发框架,让web开发更迅速、简单。
    C#调用WebService
    登录时,记住用户的帐号密码
    asp.net,cookie,写cookie,取cookie
  • 原文地址:https://www.cnblogs.com/duanxz/p/3886944.html
Copyright © 2011-2022 走看看