コンピュータプログラミングにおいて、データベースをIPCとして使用することはアンチパターンとみなされることがあります。これは、データベース内のディスクに永続化されたテーブルを、日常的なプロセス間通信(IPC)またはサブスクライブ型データ処理のためのメッセージキューストアとして使用するものです。データベースのパフォーマンスが懸念される場合は、ソケット、ネットワークソケット、メッセージキューなどの代替手段があります。
イギリスのコンピュータ科学者ジュナード・アリは、データベースをIPCアンチパターンとして定義し、データベースを「ジョブをスケジュールしたり、完了するタスクをキューに入れたり」することだと指摘し、このアンチパターンは永続的なデータではなく一時的なメッセージのためにデータベースを使用することに重点を置いていると指摘した。[ 1 ]
パフォーマンス上の問題があり、追加のシステム(およびサーバー)の導入が正当化されるかどうかが問題となります。パフォーマンスの面では、近年のデータベースシステムの進歩により、シグナリングとメッセージングのためのより効率的なメカニズムが提供され、データベースシステムはメモリ(非永続)テーブルもサポートしています。
PostgreSQL、 [ 2 ] [ 3 ] SQL Server、[ 4 ] Oracle [ 5 ]など、通知メカニズムが組み込まれたデータベースがあります。これらのメカニズムとデータベースシステムの将来の改良により、キューイングははるかに効率的になり、サーバーと管理のオーバーヘッドとともに、別のシグナリングまたはメッセージングキューシステムを設定する必要がなくなります。
MySQLは通知を直接サポートしていませんが[ 6 ] 、いくつかの回避策は可能です。しかし、それらは非標準と見なされ、メンテナンスが困難になる可能性があります。[ 7 ]