メッセージ キューイング テクノロジー (IronMQ、RabbitMQ、Amazon SQS など) と RDBMS (Sqlite、Sql Server、PostGres など) の違いは、RDBMS テーブルをキューとして使用し、クエリを許可する場合は、管理する必要があることです。 LIFO キューイング プロセスを自分で行う。キュー (一部の例外を除く) は LIFO プロセスを強制しますが、データベース テーブルはランダム アクセスであり、データの挿入、変更、または削除の方法やタイミングは強制しません。これらのルールは、ビジネス層で処理されます。(あなたは Python と Sqlite の使用について言及しました。Sqlite はキュー/データ ストアとなり、Python アプリは LIFO キューとランダム クエリを管理するロジックを実行します。)
RDBMS は仲介メッセージ ストアとしてよく使用されます。あなたの質問から、何よりもランダム アクセスに関心があるように見えるので、LIFO キューはそれほど重要ではないと思います。何を設計しているのかを詳しく知らずに判断するのは困難です。しかし、既製のキューやデータベースのように機能するものが必要な場合は、Oracle AQをチェックしてください。
リンクされたページから:
Oracle Streams Advanced Queuingはデータベース表に実装されているため、高可用性、スケーラビリティおよび信頼性という運用上のすべての利点がキュー・データにも適用されます。リカバリ、再起動、セキュリティなどの標準データベース機能は、Oracle Streams Advanced Queuing でサポートされています。Oracle Enterprise Manager などのデータベース開発および管理ツールを使用して、キューを監視できます。他のデータベース テーブルと同様に、キュー テーブルはインポートおよびエクスポートできます。
メッセージは、標準 SQL を使用して照会できます。これは、SQL を使用してメッセージ プロパティ、メッセージ履歴、およびペイロードにアクセスできることを意味します。SQL アクセスを使用すると、監査と追跡も行うことができます。メッセージへのアクセスを最適化するために、インデックスなどの利用可能なすべての SQL テクノロジを使用できます。
その他のリソースと詳細情報: