2016-03-24 16 views
1

2 500 000 satır 13 basamaklı sayı içeren bir veritabanım var (ve sonunda biraz daha fazla - 4 000 000) Kullanıcı bu veritabanında 13 basamaklı bir sayının olup olmadığını bulmak zorunda. Herhangi bir internet connexion olmadan android telefon. Peki bununla başa çıkmak için ne önerirsiniz?Android'de çok fazla miktarda veri nasıl ele alınır?

Android'de SQLITE kullanmayı düşündüm.

Önerileriniz nelerdir?

+1

İlk bakışta veritabanı en iyi seçeneğiniz. Küçük (ish) olacak ve sorguyu yeterince hızlı çalıştıracaktır. İnternet bağlantısı yok, bu veritabanını güncelleyemediğiniz anlamına gelir (bağlantı olduğunda senkronizasyonu planlamadığınız sürece). Sayılar bir desene bağlıysa, bir veritabanı olmadan belirlenebilir. Yani, bir Luhn testi geçiyor, ya da belirli aralıklar, vb. Arasındadır. – Kevin

+0

"Connexion olmadan" dediğimde, arama sunucumu yapamayacağımı söylemek istedim, ama evet, her hafta 2000 eklenecektir. veritabanındaki referanslar. Bu bir "EAN13" veritabanıdır, dolayısıyla sayısal bir model yoktur. – d3cima

+0

Ben sadece çok büyük bir telefona ihtiyacım olduğunu düşünüyorum – lelloman

cevap

1

Bu, yorum eklemek için biraz fazla, bu yüzden buraya ekleyeceğim.

4,000,000 satır tamsayı bu kadar değil. tamsayılar imzalı int (8 bayt) maksimum boyutunu kullanacağını varsayarsak, veritabanı olacaktır:

4000000 */1024/1024 8 = ~ büyükse 30.5MB

ama oyun kırma .

Şimdi, aynı zamanda, sayı başına tam 8 bayta ihtiyacınız olacağını varsayar. Biz giriş başına 13 basamak saklamak istediğini biliyorum, bu yüzden bir 6 bayt tamsayı sütun yeterli olacaktır:

4000000 */1024/1024 6 = ~ 23MB

+0

Lütfen bölüm ile ilgili bölümü kaldırdım. 'TEXT 'sütunu. Her karakter için 4 bayt'ı 13 ile çarpmayı ihmal ettim. – Kevin

1

SQLite, aygıttaki büyük veri kümeleri için en iyi depolama seçeneği olacaktır. Mümkün olan durumlarda, genel bir sorgu kullanarak ve kendi kodunuzda işlem yapmak yerine, ihtiyacınız olan verileri almak için doğru SQLite sorgusunu kullandığınızdan emin olun.

0

Merhaba d3cima çok geç cevap olabilir ama diğer yardımına var . Kendim Realm en iyi seçenektir.

Realm

Diyar adlı geliştirici dostu bir platform kolay reaktif uygulamalar, gerçek zamanlı işbirlikçi özellikleri ve çevrimdışı birinci deneyimler oluşturmak için yapar.

Avantajı en:

  • hızlı SQLite daha

  • kolay için ele

  • nesne dönüştürmeyi kullanmak için (normal- operasyonlar için ham SQLite üzerinde hız 10 kata kadar) siz

  • O zamanlar SQLite 10'dan fazla x var projemi kullanılan sinek

verileri oluşturma ve depolamak için uygun.

İlgili konular