私はデータベースに不慣れで、 を使用して最初のコードを書きsqlite3
ました。それは仕事をしますが、実行が非常に遅いので、速度を上げる方法についてアドバイスを得たいと思っています。
現在、私のコードは次のようになっています。
For Line in File:
Line= Line.strip('\n').split('\n')
Location = int(Line[1])
MChr = Line[0]
cur = db.execute('''SELECT Start, End, Chr, Feature1, Feature2, Feature3, Feature4, FROM DataBase
WHERE Start <= ? AND End >= ? AND Chr == ?''', (Location, Location, MChr))
for (Start, Stop, Chr, Feature1, Feature2, Feature3, Feature4) in cur:
if Feature1 == "A string":
do something....
if Feature2 == "A string":
do something....
私のデータベースには 100 万を少し超えるエントリがあり、それがおそらく私のプログラムの実行速度が遅い理由ですが、行ごとに 100 万をすべて実行しなければならないことを回避するために、検索をより効率的にする方法があるかどうか疑問に思っていました。(おそらく最初に、一致するすべての Chrs を引き出しますか?)