以前、ネットで見つけた投稿によると
SQLite 3.8.8で、
bulk insert(=一括インポート)最大数
500レコード制限が撤廃
[[ai]SQLite bulk Insert 500レコード制限が無くなってる!]
手持ち端末で調べると
Android 6.0.1端末(Nexus7)が上限撤廃後のSQLite 3.8.10.2
Android6.0.1以降のスマートフォンなら500行制限が無いみたい
では実際、何レコードまで一括インポートできるのかな?
早速、実験
使うのは私のスマートフォン「Pixel 3a」(Android10 : SQLite 3.22.0)
巨大なbulk insertファイルを作り徐々に行数を減らしていくと・・・
27,0708行(17,856,247バイト)でインポート成功!
結果は、270,706レコード
ちなみに、成功した27,0708行ファイル(17,856,247バイト)に文字を書込みエラーファイルサイズ(17,856,314バイト)を超えさせインポートテストすると
これもインポート成功!
と言うことはSQLファイルサイズ制限ではなく
レコード数制限が最大値270,706行みたいです。
と思いきや
改めて270,709行目を書き加えて実験するとインポート成功!
どういうこと?
バックグランドで動く別アプリの影響とか受けるのかな?
今回の実験、結論が出ない。
テストする度、数十行最大数が変わるんです!
なぞだ
まぁ、ハンディーターミナル用マスターbulk insertファイル生成プログラムの作り変えは、余裕をもって1ファイル200,000行にすれば安定するのでは
新最大値:200,000行÷旧値:500=400
これでも今の400倍!
マスターファイル生成の度、毎回1,000個近いbulk insertファイル作ってる。
これが3,4ファイルになるはず!
1,000個が4個に!
まるで夢のよう
今月、ドコモ法人契約変更で手に入れた1円スマートフォン
「Galaxy SC-02M」(Android 9.0 : SQLite 3.22.0) x 10台
利用中のAndroid4.x & 5.x & 6.0を新端末に切り替えればマスターインポートファイルを激減できる!
はずだったのに・・・・・・
こっちの方が慣れているから古いの使い続けます
という奴が大勢いるの(泣)