Basit bir Python sınıfına sahip olan ve altından bir alt konu olan. Çalıştırma yönteminde, sqlite db'ye bağlanıyorum, basit bir seçim sorgusu yapıyorum ve bağlantıyı kapatıyorum. Oldukça standart şeyler: sadece bir iş parçacığı bir anda çalıştırılırPython sqlite3 - Salt Okunur Birden Fazla Konular = SLOW
def run(self):
conn = sqlite3.connect(SHAPE_CACHE_DB)
curs = conn.cursor()
curs.execute('SELECT * from foo')
for row in curs.fetchall():
# do stuff
curs.close()
conn.close()
, çalışma yöntemi çok hızlı çalıştırır - sadece < 1 saniye sağlar. Ancak, sınıfın birden çok örneği başlatılır ve çalıştırılırsa - 6 veya daha fazla söyleyelim, çalıştırma yöntemi çok saniye alabilir ???
İplikler arasında okuma erişimi arasında bazı çekişmeler olduğunu tahmin ediyorum. Ama ben sqlite eşzamanlı konulara okuma erişimi izin verdiğini düşündüm ???
sql aslında iş parçacığı başına değişir. Ve başvuruda bulunduğunuz python doc bağlantısında, imleçlerin ve bağlantıların threadlar arasında paylaşılamayacağını söylüyor. Bunu burada yapmıyorum - her iş parçacığı kendi bağlantı ve imlecini yönetir. Yani başka bir kilit burada oynanmalıdır. – user163757
sql iş parçacığı arasında değişiyor olsa da sonuç kümesi boyutu çok yakın olacak. – user163757
Anlaştık, ilk neden yine de hız için geçerli değil. Sadece bir FYI idi. Sonuç kümesi boyutu çok benzer olacaksa, bu daha büyük zamanın sebebi olabilir. – Sid