より広い視野: Stock EOD データを維持するためのデータベース計画。
手元にあるツール: PHP と共に MySQL データベース 4.1+ を使用する予定です。カスタム DBAL (mysqli に基づく) は、MySQL と連携するために PHP に実装されています。ただし、無料で利用でき、SQL ステートメントで動作する場合は、他のデータベース エンジンを使用できます :P
問題領域:株式の EOD データを維持するために、プロジェクトのデータベースを計画する必要があります。データベースに保持される在庫の数は膨大になるため、同じ EOD データの更新プロセスは、1 日の終わりにかなり重いプロセスになります。言うまでもなく、私は共有ホスティングを使用しており、最初の起動時に MySQL のパフォーマンスのボトルネックを回避する必要があります。ただし、後で VPS に移行する可能性があります。
質問:
1.正規化されたスキーマは、パフォーマンスの問題を発生させずに重い更新プロセスを実行できますか?
2. MACD や CMF などの一般的なアルゴリズムに基づく分析を EOD データに対して実行して、株式の特定の傾向を特定する必要があります。分析からのデータは、さらなる参照のために再度保存する必要があります。その日の EOD データが更新されると、分析データが計算されます。ここで正規化されたスキーマを使用しても問題ありませんが、パフォーマンスの問題は考慮されていますか? また、EOD と分析データの両方を頻繁にフェッチする必要があります。
詳細:
1 つの INSERT ステートメント(EOD データを挿入するため) + 1 つの INSERT ステートメント(分析データを挿入するため)
= 2 INSERT ステートメント* 1500 株(スタートアップ用)
= 3000 INSERT ステートメントが 2 つ戻って実行されました。
プロジェクトが成長するにつれて、さらに在庫を追加することを計画しているため、ここではスケーラビリティも検討しています。
DW の概念については知りませんが (聞いただけです)、パフォーマンスの観点から OLTP よりも実行可能である場合は、試してみる準備ができています。