sqlite 复制表速度慢_SQLite读取速度慢(每秒100条记录)

我有一个大的SQLite数据库(~134 GB),它有多个表,每个表有14列,大约3.3亿条记录和4个索引 . 数据库上使用的唯一操作是“Select *”,因为我需要所有列(无插入或更新) . 当我查询数据库时,结果集很大时响应时间很慢(获取~18,000条记录需要160秒) .

我已经多次改进了索引的使用,这是我得到的最快的响应时间 .

我正在运行数据库作为具有32 GB RAM的服务器上的Web应用程序的后端数据库 .

有没有办法使用RAM(或其他任何东西)来加快查询过程?

这是执行查询的代码 .

async.each(proteins,function(item, callback) {

`PI[item] = []; // Stores interaction proteins for all query proteins

PS[item] = []; // Stores scores for all interaction proteins

PIS[item] = []; // Stores interaction sites for all interaction proteins

var sites = {}; // a temporarily holder for interaction sites

var query_string = 'SELECT * FROM ' + organism + PIPE_output_table +

' WHERE ' + score_type + ' > ' + cutoff['range'] + ' AND (protein_A = "' + item + '" OR protein_B = "' + item '") ORDER BY PIPE_score DESC';

db.each(query_string, function (err, row) {

if (row.protein_A == item) {

PI[item].push(row.protein_B);

// add 1 to interaction sites to represent sites starting from 1 not from 0

sites['S1AS'] = row.site1_A_start + 1;

sites['S1AE'] = row.site1_A_end + 1;

sites['S1BS'] = row.site1_B_start + 1;

sites['S1BE'] = row.site1_B_end + 1;

sites['S2AS'] = row.site2_A_start + 1;

sites['S2AE'] = row.site2_A_end + 1;

sites['S2BS'] = row.site2_B_start + 1;

sites['S2BE'] = row.site2_B_end + 1;

sites['S3AS'] = row.site3_A_start + 1;

sites['S3AE'] = row.site3_A_end + 1;

sites['S3BS'] = row.site3_B_start + 1;

sites['S3BE'] = row.site3_B_end + 1;

PIS[item].push(sites);

sites = {};

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值