我正在发布此线程以获得有关我的SQL查询性能的一些建议。 我实际上有2个表格,其中一个称为HGVS_SNP
约44657169行,另一个表格为run
,平均有2000行。 当我尝试更新我的run table
的字段评论时,需要很长时间来执行查询。我想知道是否有任何方法来增加我的SQL查询。 HGVS_SNP表提高MySQL中的查询性能
结构:
+-----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| snp_id | int(11) | YES | MUL | NULL | |
| hgvs_name | text | YES | | NULL | |
| source | varchar(8) | NO | | NULL | |
| upd_time | varchar(32) | NO | | NULL | |
+-----------+-------------+------+-----+---------+-------+
我跑表的结构如下:
+----------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------------+--------------+------+-----+---------+-------+
| ID | varchar(7) | YES | | NULL | |
| Reference | varchar(7) | YES | MUL | NULL | |
| HGVSvar2 | varchar(120) | YES | MUL | NULL | |
| Comment | varchar(120) | YES | | NULL | |
| Compute | varchar(20) | YES | | NULL | |
+----------------------+--------------+------+-----+---------+-------+
这里是我的查询:
UPDATE run
INNER JOIN SNP_HGVS
ON run.HGVSvar2=SNP_HGVS.hgvs_name
SET run.Comment=concat('rs',SNP_HGVS.snp_id) WHERE run.Compute not like 'tron'
obviuos怀疑是你加入的字段有差异t类型和'hgvs_name'似乎缺少索引。 –
这个“不喜欢”并不幸运,正如我所看到的那样,没有“计算”字段的索引 – vaso123
在“计算”列上添加索引,如果没有必要则避免使用“LIKE” – mitkosoft