2013-04-19 15 views

Odpowiedz

5

Nie można odczytać limitów SQLite w systemie Android w środowisku wykonawczym. (SQLite ma a function for this w swoim API C, ale Android tego nie ujawnia.)

W każdym razie nie znam żadnego producenta Androida, który ograniczyłby jakiekolwiek limity SQLite. (Zwykle zwiększają limit lub włączają niektóre opcje, gdy są potrzebne w ich własnych aplikacjach lub gdy próbują zoptymalizować, ale nigdy nie zawracają sobie głowy zmianą czegoś innego.)

+0

OK. Dzięki. To odpowiadało na moje pytanie bardziej niż wyżej, ponieważ nie mogę faktycznie sprawdzić, jak długo może być łatwo. Jeszcze raz dziękuję =). –

+0

Chciałbym poznać aspekt wydajności dużych obiektów BLOB w porównaniu do przechowywania plików. – eRaisedToX

+1

@eRaisedToX To nie ma nic wspólnego z tym pytaniem. I jest już [udokumentowane] (http://www.sqlite.org/intern-v-extern-blob.html). –

6

maksymalnej długości łańcucha lub BLOB

Maksymalna liczba bitów w ciągu lub BLOB w SQLite jest określona przez preprocesor makro SQLITE_MAX_LENGTH. Domyślna wartość tego makra wynosi 1 miliard (1 000 milionów lub 1 000 000 000). Można podnieść lub obniżyć tę wartość w czasie kompilacji używając opcję takiego wiersza poleceń:

-DSQLITE_MAX_LENGTH=123456789 

Obecna implementacja obsługuje tylko długość łańcucha znaków lub BLOB do 231-1 lub 2147483647. a niektóre wbudowane funkcje, takie jak hex(), mogą zakończyć się niepowodzeniem na długo przed tym punktem. W aplikacjach wrażliwych na bezpieczeństwo najlepiej jest nie zwiększać maksymalnej długości łańcucha i długości bloku blob. W rzeczywistości możesz zrobić dobrze, aby obniżyć wartość maksymalnego łańcucha i długości bloba do czegoś więcej w zakresie kilku milionów, jeśli to możliwe.

Podczas części procesu INSERT i SELECT SQLite kompletna zawartość każdego wiersza w bazie danych jest zakodowana jako pojedynczy obiekt BLOB. Tak więc parametr SQLITE_MAX_LENGTH określa także maksymalną liczbę bajtów z rzędu.

Od http://www.sqlite.org/limits.html.

+1

Rozumiem to jednak, jak mówi ti, możesz go zmienić za pomocą opcji wiersza poleceń podczas kompilacji. Pytanie było więcej, czy oni to zmienili, a jeśli tak, to jaka jest jego nowa wartość? Albo, jak mogę się dowiedzieć, czy tak zrobili, czy nie? –