买的数据库是阿里云的,配置信息:
- 数据库类型: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`; 