-2

私のRailsアプリは、Webから大量のデータを収集し、約12のテーブルの正規化されたデータベースで、数十万の受信レコード(選択、更新、挿入)に対してETLを実行します。sqliteデータベースのパフォーマンスを高速化するための最も信頼できる方法は何ですか?

検索するすべてのフィールドにインデックスを設定し、メインループを単一のトランザクションにラップしました。

SQLiteを高速化するデータベース設定などの他の標準的な方法はありますか?

4

2 に答える 2

1

大量のデータがある場合、SQLiteは適切な選択ではありません。オプションがある場合は、mysqlまたはpostgresに切り替えてください。どちらもインストールが簡単で、パフォーマンスが向上するはずです。

于 2012-08-10T05:53:50.987 に答える
1

コードが十分に高速に実行されない理由を詳しく知らずに、mysqlまたはpostgresに切り替えることを提案する他の回答に同意しない必要があります。人々は、SQLiteがパフォーマンス指向のシステムで大量のデータを処理できることに同意する傾向があります。頻繁に行ういくつかのシナリオのコードを投稿して、それらを行うためのより良い方法を考えられるかどうかを確認することをお勧めします。SQLiteとmysqlで同じ欠陥のあるアプローチを使用している場合は、はるかに優れた効果が得られるとは思えません。

SQLiteは非常に高速です。MySQLやPostGresなどの他のDBシステムよりも速度が遅い場合は、SQLiteを最大限に活用していません。速度の最適化は、SQLiteの作成者でありメンテナであるD.リチャードヒップの2番目の優先事項のようです。1つは、データの整合性と信頼性です。ここで実行できる最適化の詳細を読む

あなたも

一括トランザクションにデータを挿入しますか?データをインポートするときは、データを注文する必要があります。夜間やアクティビティの少ない期間にインデックスをやり直すことを検討することもできます。

于 2012-08-10T06:07:32.460 に答える