私は最近、Django を使用して化合物のデータベースを構築しています。モデルトラバースの扱いに困っています。以下は私の問題です:
モデル:
class CompoundStructures(models.Model):
molregno = models.CharField(max_length=27L, primary_key=True)
molfile = models.TextField(blank=True)
standard_inchi = models.TextField(blank=True)
standard_inchi_key = models.CharField(max_length=27L, unique=True)
canonical_smiles = models.TextField(blank=True)
molformula = models.CharField(max_length=100L, blank=True)
class Meta:
db_table = 'compound_structures'
def __unicode__(self):
return self.molformula
このモデルのデータベースには 1,000,000 以上のレコードがあります。次のようなコードを実行します。
all_mols = CompoundStructures.objects.all()
mol_0 = all_mols[0] //quick
mol_100 = all_mols[100] //normal
mol_10000 = all_mols[10000] //slow
mol_100000 = all_mols[100000] //really slow!
インデックス番号が大きくなるほど遅くなるのはなぜですか? これにより、 を横断できなくなりCompoundStructures
ます。