안드로이드에서 AsyncStorage 최대 크기는 디폴트로 6MB로 설정되어 있다.
너무 많은 데이터를 넣는 것을 방지하기 위해서라고 한다.
이 용량을 초과하면 오류가 발생하고, 만약 최대 용량을 늘릴려면 android/gradle.properties 파일에 다음 코드를 추가하면 된다.
(...)
AsyncStorge_db_size_in_MB=10
이 코드는 최대 용량을 10MB로 설정한다. iOS는 최대 용량이 따로 지정되어 있지 않다.
AsynchStorage에서 다루는 데이터의 규모가 커질수록 성능이 저한된다.
문자열 타입으로만 저장할 수 있기 때문에 데이터가 많아질수록 속도가 느려진다.
물론 캐싱 시스템, 스로틀링, 페이지네이션 구현 등으로 성능을 최적화할 수 있지만,
최적화가 코드 몇 줄 추가하는 것처럼 간단하지는 않다. 또한 검색 또는 정렬 기능이 지원되지 않는다.
따라서 AsyncStorage는 비교적 소규모 데이터를 다룰 때 사용하는 것이 좋다.
데이터의 규모가 커졌을 때 사용할 수 있는 대안으로는 realm과 react-navive-sqlite-storage가 있다(안드로이드의 AsyncStorage는 이미 SQLite를 사용하긴하다, 다만 react-native-sqlite-storage를 사용하면 인덱싱 기능을 지원받을 수 있고 더욱 다양한 방식으로 데이터를 조회할 수 있다.
참고 및 출처 : 리액트 네이티브를 다루는 기술