テーブルに4100万行のsqlite3の巨大なデータベースがあります。ただし、1 つのクエリを実行するのに約 14 秒かかります。アクセスタイムを大幅に改善したい!これはハード ディスクのハードウェアの制限ですか、それともプロセッサの制限ですか? それがプロセッサの制限である場合、クエリを並列化するために必要な 8 つのプロセッサを使用できると思います。ただし、SQLite for python でクエリを並列化する方法は見つかりませんでした。これを行う方法はありますか?コーディング例を教えてください。それとも、他のデータベース プログラムの方がアクセスが効率的ですか? もしそうなら、どれですか?
1 に答える
1
まず、効率的なクエリを支援するために、関連するインデックスが設定されていることを確認します。これは、役立つ場合と役に立たない場合があります...
それ以外は、SQLiteは(奇妙なことに)軽量の埋め込みSQL DBエンジンであることが意図されています-列の数やサイズなどに応じて、4,100万行がおそらくそれをプッシュしています...
PostgreSQL
DBを取得して、またはにインポートできます。MySQL
これらは、Pythonバインディングと広範な機能セットを備えたオープンソースのRDMSです。大きなデータに対するクエリ、インデックス作成、キャッシュ、メモリ管理などを効果的に処理できるようになります。(または、少なくとも、その目的のために設計されているため、そうではなかったSQLiteよりも効果的です...)
于 2012-07-19T08:50:38.083 に答える