SQLite3を使うと簡単にアプリケーションをつくることができることがわかったのですが、大量のデータを追加した場合、処理が遅くなることはないのでしょうか?

実験用のアプリをつくります。

まず追加するデータをつくります。

テキストファイル(約200MB)

これはニュースサイトから拾ってきたものですが、そのまま使うと著作権的に問題があるので、改行や句読点で分割して順序を並べ替えて元の文章がなにかわからないようにしています。これを実行ファイルがあるフォルダにコピーしておきます。

次にアプリケーションが実行されたら10個のテキストファイルを読み込み、これをデータベースのなかによみこみます。この処理は1回やればよいのでテーブルが存在するか調べて存在しないときだけおこないます。

これはテーブルが存在するかどうか調べるメソッドです。

これはテキストファイルのデータをSQLite3へ読み込むためのメソッドです。全部で200MBくらいのテキストファイルのデータですが、20秒ちょっとかかりました。全部で1,363,000件あります。

一番上のテキストボックスに数字を入力して[表示]ボタンを押すとIDが一致するデータを取得することができます。

またデータを更新したり削除する機能も追加してみました。

上のコードではプライマリキーで検索していますが、この場合はほとんど時間はかかりません。5000万件くらい登録するとデータベースの大きさは12GB弱になりますが、プライマリキーの検索であれば一瞬で結果を返します。しかしそれ以外の検索であればけっこうな時間がかかります。

この記事を書いたあとみつけた記事なのですが、

SQLite3に登録できるデータ数の限界は?

SQLite3に60億件のデータを登録を登録できるか?という質問です。回答者も実際に1億件のデータを登録したという強者でした。