mysql - 从包含2亿条记录的表中选择一些记录

标签 mysql

我是 sql 新手,所以我的术语可能不太正确。

我有一个 Alignment 表,其中有 2.5 亿条记录。它有两列 chain_id1 和 chain_id2。其中一些链是来自另一个具有 22000 条记录的 Centroid 表的 chain_id 的外键。

基本上我需要所有以两条链为质心的记录。

我尝试使用以下查询:

insert into NewAlignment(...) 
select .... 
from Alignment as A
   , Centroid  as C1
   , Centroid  as C2 
where (A.chain_id1 = C1.chain_id) 
  and (A.chain_id2 = C2.chain_id)

但是上面的查询只是停止,从表的大小来看这是可以理解的。

所以我尝试编写一个脚本来扫描表并检查值,然后插入新表。这样,1000000 条记录大约需要 13 分钟。

有什么办法可以加快速度吗?

非常感谢。

最佳答案

您可能需要向表添加索引,尤其是 Alignment.Chain_id1Alignment.Chain_id2Centroid.Chain_id 。这应该会有很大帮助。

关于mysql - 从包含2亿条记录的表中选择一些记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2274826/

相关文章:

mysql - 如何在phpmyadmin中连接两个表?

mysql - Google Kubernetes Engine 午夜转储 mysql

php - 推特日期格式到Mysql

php - 插入数据库并检查行是否已存在

php - mysql_fetch_array() 是什么意思

mysql - Spark : com. mysql.jdbc.Driver 不允许创建表作为选择

php - 第二种情况mysql触发错误

MySQL 语法不选择列中的 '_' 数据

mysql - 如何将空集放入内部连接

php - 如何在 PHP 中将 MYSQL_CLIENT_SSL 设置与 mysql_connect() 一起使用?