Orta ölçekli bir tabloyu (60 GB, 500 milyon satır) dolduruyorum. Tablonun birincil anahtarı yoksa (toplu ek kullanarak ~ 1 saat), işlem oldukça hızlı tamamlanır, ancak birincil anahtarla bu tabloyu oluşturursam 10 kat daha uzun sürer. Bunun, teklik kısıtını doğrulamak ve her bir eklentideki dizini güncellemek zaman alması gerektiğine inanıyorum.Birincil anahtarla performans sorunu
Önceden doldurulmuş tablodaki endeksleme, artan dizine göre daha hızlı olması gerektiğinden, birincil anahtarı daha sonra eklemek iyi bir geçici çözüm olacağını düşündüm. Ancak sqlite, tablo oluşturulduktan sonra birincil anahtar ekleme seçeneğine sahip görünmüyor (neden emin değil misiniz?).
Sanırım birincil anahtar kullanamıyorum ve tablo doldurulduktan sonra benzersiz bir dizin ekleyemiyorum. Bunun bir dezavantajı var mı? Ya da herhangi bir daha iyi bir çözüm önerildi mi?
Ancak, bağlantılı cevabınıza göre, birincil anahtar INTEGER sütunundaysa performans avantajına sahip olabilir mi? – max
Evet, ancak tablonuz farklı bir tür kullanmış. –
INTEGER PRIMARY KEY, eklemeleri yavaşlatmayacaktır. –