db 操作にどれくらいの時間がかかるかわからないので、スレッドで呼び出しても問題ないでしょうか?
現時点では、追加されたジョブを実行する ExecutorService オブジェクトを含む ThreadPool クラスがあります。すべての db 関連のメソッドはジョブとして追加されるため、新しいスレッドが利用可能になると ThreadPool がそれを実行します。
データベース操作を行う最良の方法はどれですか?
ありがとうございました。
db 操作にどれくらいの時間がかかるかわからないので、スレッドで呼び出しても問題ないでしょうか?
短い回答: はい。スレッドでデータベース操作を実行する必要があります。アプリケーションのロジックをアプリケーションの外観から分離しておく必要があります。
データベース操作を行う最良の方法はどれですか?
一般的にスレッドを使用することは、選択できるベストプラクティスだと思います。また、使用されるツールの種類 (PoolExecutor、FutureTask、AsyncTask、ネイティブ スレッド) は、予想される操作時間と想定される操作時間によって異なります (常に操作が 1 ~ 2 秒以上続く場合は、スレッドを使用する必要があります)。
AsyncTask は、実行中のタスクの進行状況を潜在的に通知したい場合に使用するのに適してUSER
います。理想的には数秒続くタスク用に指定されていることに注意してください。
長時間実行されるタスクの場合は、ThreadPool、ThreadPoolExecutor、FutureTask などのjava.util.concurrentAPI
パッケージの前述のツールを使用するのが適切です。
データベース操作に AsyncTask またはネイティブ スレッドを使用しています。通常、それらは最大で持続します。数秒。を使用すると、挿入、削除、および更新に関連するパフォーマンスを常に向上させることができますTRANSACTIONS
。たとえば、挿入速度1を急速に向上させ、データベースをより安全に処理する方法を提供します。常にそれは非常に優れた、効率的で有用な実践です。
1基本的なデータベース操作に関連するパフォーマンスをテストしたときに、いくつかのテストを行いましたが、結果は非常に興味深いものでした。100 000 レコードの挿入を実行しましたが、その差は大きかったです。一方、トランザクションによる挿入には約 1 秒かかりました。57,497 秒、トランザクションなしの挿入には 6 分以上かかりました。それは非常識です。削除と更新も同様です。