sql >> データベース >  >> RDS >> Sqlserver

データベースのパフォーマンスを向上させる方法は?

    論理設計を最適化する

    論理レベルは、クエリとテーブル自体の構造に関するものです。最初にこれを最大化してみてください。目標は、論理レベルでできるだけ少ないデータにアクセスすることです。

    • 最も効率的な SQL クエリを使用する
    • アプリケーションのニーズをサポートする論理スキーマを設計する (例:列のタイプなど)
    • 他のユースケースよりも優れたユースケースをサポートするためのトレードオフを設計する
    • 関係の制約
    • 正規化

    物理設計の最適化

    物理レベルでは、インデックスのタイプ、テーブルのパラメーターなど、非論理的な考慮事項を扱います。目標は、常にボトルネックとなる IO を最適化することです。必要に応じて各テーブルを調整します。小さなテーブルを DBMS キャッシュに永続的にロードすることができます。書き込み率の低いテーブルは、更新率の高いテーブルとは異なる設定を使用して、ディスク領域を節約することができます。クエリに応じて、異なるインデックスを使用することができます。具体化されたビューなどで透過的に非正規化されたデータ。

    • テーブル パラメータ (割り当てサイズなど)
    • インデックス (組み合わせ、型など)
    • システム全体のパラメータ (キャッシュ サイズなど)
    • パーティショニング
    • 非正規化

    最初に論理設計を改善してから、物理設計を改善してください。 (ただし、両者の境界はあいまいなので、私の分類について議論することができます)。

    メンテナンスを最適化

    可能な限り効率を維持するには、データベースを正しく運用する必要があります。これには、パフォーマンスに影響を与える可能性のあるいくつかのメンテナンス タスクが含まれます。たとえば、

    • 統計を最新の状態に保つ
    • 重要なテーブルの順序を定期的に変更する
    • ディスクのメンテナンス
    • 優れたサーバーを構築するためのすべてのシステム要素


    1. 正規化または非正規化が機能するかどうかを判断できません

    2. 列がnullでも空でもないAndroidSQLiteクエリ

    3. MySQL/PHPのトランザクション動作

    4. 奇妙なMySQLPythonmod_wsgi「localhost」(49)の問題でMySQLサーバーに接続できません