$ input_A
  @ID_1
  aaaa
  +
  nnnn
  @ID_2
  bbbb
  +
  nnnn
  ...
  @ID_50000000
  zzzz
  +
  nnnn

$ inputB
  ID_832-aaa
  ID_12020-aaa-bbb
  ID_1-nnn-nnn
  ID_9999-ddd-aaa-ccc
  ID_2-xxx-xxx
  ...
  ID_20000000-aaa

上記のような2つのファイルから、一致したinputBのID情報とinputAのID下の配列情報を取得したいと考えています。
どちらも2000万〜5000万件程度あります。
inputAの配列とIDはbiopythonというモジュールを使用して取得させ、下記のような処理を行いました。
しかし、配列数が多いためか処理時間がかかってしまい、数千万件処理するのに数百時間かかる見込みで実用的ではありません。
現実的な処理時間でこのような処理を行うにはどうすればよいでしょうか。
よろしくお願いします。

for a in seqIO.parse(inputA, 'fastq'):
    for b in inputB:
        if a.id == b.split('-')[0]
            result = ">" + str(b) + str(q.seq) + '\n'

下記のようなOutputを想定しています。

$ result
  >ID_1-nnn-nnn
  aaaa
  >ID_2-xxx-xxx
  bbbb
  ...
  >ID_50000000-aaa-bbb-ccc
  zzzz

追記
inputBのID番号(先頭から-まで)と、inputAのID(@より後ろ)が一致したinputBの行(resultの>行)と、その下にinputAの@の下の行を引用したファイルをresultとして作成しようとしています。
@ID_50000000の@はミスです。修正しました。
inputAの+行とその下は不要です。
inputAの@行は重複なし、inputBのID(ID_X)は重複ありですが、行全体(ID_X-abc-abc)は重複なしです。
pythonのバージョンは2.7.10を使用しています。