• 全表扫描


    查询sql语句:
    select Name ,Id, count(*)  from test where sesTime is not null group by Name order by count(*) desc limit 15;
    ############################
    查看sql语句的执行计划:
    desc select Name ,Id, count(*) from test where sesTime is not null group by Name order by count(*) desc limit 15;+----+-------------+----------------+------------+------+---------------+------+---------+------+---------+----------+----------------------------------------------+
    | id | select_type | table          | partitions | type | possible_keys | key  | key_len | ref  | rows    | filtered | Extra                                        |
    +----+-------------+----------------+------------+------+---------------+------+---------+------+---------+----------+----------------------------------------------+
    |  1 | SIMPLE      | test | NULL       | ALL  | NULL          | NULL | NULL    | NULL | 1305648 |    90.00 | Using where; Using temporary; Using filesort |
    +----+-------------+----------------+------------+------+---------------+------+---------+------+---------+----------+----------------------------------------------+
    1 row in set, 1 warning (0.00 sec)
    
    Thu Oct 10 18:34:36 2019
    
    显然,这是一个全表扫描语句,
    ##########################
    查看该表的数据量:
    select count(*) from test;
    +----------+
    | count(*) |
    +----------+
    |  1373833 |
    +----------+
    1 row in set (0.48 sec)
    
    Thu Oct 10 18:45:10 2019
    显然,该表数据量有140万条记录左右。
    ############################
    查看该表结构:
    show create table mbi_order_tempG;
    *************************** 1. row ***************************
    
    Thu Oct 10 18:48:10 2019
    从这个表结构语句可知:分组字段fiveGradeName没有索引,因此整个语句都是全表扫描
    #######
    #######
    xxx@igoodful(yyy) > show create table job G
    *************************** 1. row ***************************
           Table: job_stat
    Create Table: CREATE TABLE `job_stat` (
      `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
      `pdl` varchar(255) COLLATE utf8_unicode_ci NOT NULL COMMENT '产品线',
      `tags` varchar(255) COLLATE utf8_unicode_ci NOT NULL COMMENT 'j名称',
      `cluster` varchar(64) COLLATE utf8_unicode_ci NOT NULL COMMENT '所在集群',
      `cpus` float NOT NULL COMMENT 'cpu模版数量',
      `mem` float NOT NULL COMMENT 'mem模板数量',
      `disk` float NOT NULL COMMENT 'disk模板数量',
      `all_cpus` float NOT NULL COMMENT 'cpu总数量',
      `all_mem` float NOT NULL COMMENT 'mem总数量',
      `all_disk` float NOT NULL COMMENT 'disk总数量',
      `used_cpus` float NOT NULL COMMENT 'cpu使用数量',
      `used_mem` float NOT NULL COMMENT 'mem使用数量',
      `used_disk` float NOT NULL COMMENT 'disk使用数量',
      `running` int(11) NOT NULL COMMENT 'task running 数量',
      `instances` int(11) DEFAULT NULL COMMENT 'instances数量',
      `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '时间',
      PRIMARY KEY (`id`),
      KEY `idx_job_ts` (`tags`,`timestamp`),
      KEY `idx_pdl` (`pdl`),
      KEY `idx_ts` (`timestamp`)
    ) ENGINE=InnoDB AUTO_INCREMENT=75982981 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
    1 row in set (0.00 sec)
    
    
    
    xxx@igoodful(yyy) > select count(*) from job; 
    +----------+
    | count(*) |
    +----------+
    | 62680162 |
    +----------+
    1 row in set (10.11 sec)




    #################################################

    下面就是一个全表扫描语句:

    原因:like使用了前导%,导致索引失效,进而全表扫描。该语句执行差不多需要2分钟。

    #################################################
    xxx@igoodful(yyy) > select * from job where tags like "%service.browser-score-service_cluster.c3_pdl.browser_owt.miui_cop.xiaomi%";








  • 相关阅读:
    hdu4738(双连通分量)
    hdu4635(强连通缩点)
    hdu4612(双连通缩点+树的直径)
    poj3177(边双连通分量+缩点)
    poj3694(tarjan缩点+lca)
    hdu5171(矩阵快速幂)
    uva796(求桥数目)
    uva315(求割点数目)
    POJ1058 The Gourmet Club
    POJ1057 FILE MAPPING
  • 原文地址:https://www.cnblogs.com/igoodful/p/11649935.html
Copyright © 2020-2023  润新知