mysql 这个查询速度正常吗,怎么优化?

查看 40|回复 2
作者:cleveryun   
买的数据库是阿里云的,配置信息:
  • 数据库类型:MySQL8.0
  • 规格族:通用型
  • CPU:2 核
  • 数据库内存:16384 M
  • 规格默认连接数:8000
  • 最大 IOPS:6800
  • 实例规格:mysql.n8m.medium.2c

    目前有 4 千万不到的数据,我拆成了 8 个表,每个表放 500 万行数据。单张表的表结构如下:
    create table `bio-hub`.`pubmed-article-0`
    (
        pm_id             int           not null
            primary key,
        title             varchar(2000) not null,
        author            text          not null,
        lang              varchar(255)  null,
        abstract          text          null,
        keywords          text          null,
        journal_title     varchar(255)  null,
        journal_pub_year  varchar(255)  null,
        journal_pub_month varchar(255)  null,
        journal_i_s_s_n   varchar(255)  null,
        mesh_ids          varchar(2000) null,
        mesh_cat          varchar(2000) null comment '医学主题词所属分类,如`A01`',
        created_at        datetime      not null,
        updated_at        datetime      not null
    );
    create index `pubmed-article-0_journal_pub_year`
        on `bio-hub`.`pubmed-article-0` (journal_pub_year);
    现状是我再 DataGrip 里光执行下面这样一句 count 都要三四十秒(首次,没缓存的情况下),是我哪里姿势不对吗,这也太慢了。带上关键词查询的 sql 不得更慢了。怎么破?
    更新:我人在上海,数据库节点也是上海的。
    SELECT COUNT(1) FROM `pubmed-article-1`;
  • rimutuyuan   
    不正常,尝试用数据库同地域的服务器测试下
    winglight2016   
    配置低了,我们这里 4000 多万条数据,也是 mysql ,机器配置高一些,count 一下也需要 17 秒左右。
    count 是全表扫描,这个速度算是正常吧。
    如果是查询 limit 1000 以内,可以 1 秒左右返回。
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部