当店は、数十のクライアント インストール用にいくつかの WEB/SMS/DB ソリューションを開発しました。アプリケーションにはいくつかのリアルタイム パフォーマンス要件があり、適切に機能するには十分です。問題は、クライアント (運用サーバーの所有者) が同じサーバー/データベースをカスタマイズに使用しているため、作成およびデプロイしたアプリケーションのパフォーマンスに問題が生じていることです。
クライアントのカスタマイズの例:
- クエリで他のデータ型にキャストされる列に多くのテキスト データ型を含む大きなテーブルを追加する
- 主キー、インデックス、または FK 制約なし
- スクリプトからのループでを使用する外部スクリプトを使用
count(*) from table where id = x
して、後で同じスクリプト内でさらにクエリを作成する方法を決定します。(プランナーが最適化できる、または単一のパスですべてを実行できる一括アクションはありません) - サーバー上のすべての新しいコード ファイルは、root によって作成/所有され、0777 パーミッションで作成されます。
クライアントは提案や批判をうまく受け止めません。先に進んで自分でスクリプトを移植/変更しようとすると、古いコードが戻ってきて、行った変更がすべて破壊される可能性があります! または、ユースケースに関する知識が限られているため、変更を最適化しようとして機能を壊してしまいます。
私の質問は次のとおりです。作成および展開するもの以外のクエリ/アプリケーションにリソースを制限するにはどうすればよいですか? このようなシナリオで実用的なオプションはありますか? 私たちは OSS ソリューションを持っていることを誇りに思っていましたが、それが負担になっているようです。
Linux Distos の範囲で実行されている PG 8.3 を使用します。クライアントは php を好みますが、シェル スクリプト、perl、python、および plpgsql はすべて、システム上で何らかの形で使用されています。