SQLはコマンドがシンプルな構文であるため、操作が非常に簡単で、ユーザー効率が高いです。 しかし、その後、SQL コマンドの効率は、データベース機能の違い、特に個々の計算時間の違いに左右されます。 また、言語が効率的だからといって、その言語を最適化することも容易ではありません。 すべてのデータベースは、その個々のニーズ
によると、チューニングするユニークな方法を必要とする理由です、最高のSQLデータベースを使用すると、データベースを最適化または高めるために別の方法を知っていると同じくらい、それの最高のパフォーマンスを確保するために、お勧めします。 言うような開発者のためのSQLデータベースを最適化する範囲は、シニアJavaのj2ee開発者は、いくつかの点でデータベース管理者(DBA)の仕事とは異なり、他の点で似ています。 大企業では、開発者とDBAはしばしば一緒に仕事をする必要があり、そこで、より頻繁に、2つのチームの間で競合が発生することが見出されている。 SQLデータベースのチューニングには、さまざまな方法があります。
- NEXT GENERATION DEVOPS: VALUE STREAM MANAGEMENT
- How to GROW YOUR SERVERLESS TEAM
- MLOPS: CONTINUOUS DELIVERY OF MACHINE LEARNING SYSTEMS
- 適切なインデックス作成
- SEE MORE: 2017年のトップデータベース SQL、NoSQL、ビッグデータ、高速データの動向
- 関連するデータのみを取得する
- Getting rid of correlated subqueries
- SEE MORE: チーム MySQL 対 チーム PostgreSQL。
- Using or avoiding temporary tables according to requirements
- Avoid coding loops
NEXT GENERATION DEVOPS: VALUE STREAM MANAGEMENT
Helen Beal(DevOps Institute.)
How to GROW YOUR SERVERLESS TEAM
Sheen Brisals (The LEGO Group)
MLOPS: CONTINUOUS DELIVERY OF MACHINE LEARNING SYSTEMS
Hauke Brammer (finpair GmbH)
適切なインデックス作成
インデックスは基本的に、データ検索プロセス全体を高速化するのに役立つデータ構造である。 ユニーク・インデックスとは、互いに重ならずに別々のデータ列を作成するインデックス作成の一種です。 適切なインデックスを作成することで、データベースへの迅速なアクセスが可能になります。 過剰なインデックス付けも、まったくインデックスを付けないのも、どちらも間違っています。 インデックスをまったく付けなければ、処理は非常に遅くなり、逆にすべてをインデックス付けすると、挿入や更新のトリガーが効かなくなります」
SEE MORE: 2017年のトップデータベース SQL、NoSQL、ビッグデータ、高速データの動向
関連するデータのみを取得する
必要なデータを特定することで、正確な検索を行うことができます。 必要なときにSELECT *
の代わりに*
とLIMIT
を使用することで、データベースを調整することができ、ユーザーが特定の部分のみを必要とするときにデータ全体を取得することを避けることができます。 もちろん、全体のデータ量が少ない場合には必要ないだろう。
*
コマンドは列からのデータを指定するために使用し、LIMIT
コマンドはユーザーが多くの中からある数の行からのデータを必要とするときに使用する。 惜しみなく選択することは、必ずしも必要なルールではない。 しかし、将来的なシステムエラーを回避するためには有効である。
相関サブクエリは基本的に親クエリまたは外部クエリに依存する。 この種の検索は行ごとに行われます。 つまり、全体の処理速度を低下させるということです。 この問題は通常、外部クエリからの WHERE
のコマンドにあり、これを適用すると、親クエリが返す各行に対してサブクエリが実行され、結果的に全体の処理が遅くなり、データベースの効率が低下してしまうのです。 したがって、この場合、データベースを調整する良い方法は、相関サブクエリの代わりにINNER JOIN
コマンドを使用することです。 しかし、特定のケースでは、相関サブクエリの使用が不可欠です。
SEE MORE: チーム MySQL 対 チーム PostgreSQL。
Using or avoiding temporary tables according to requirements
If any code can be well written in a simple way, there is absolutely need to make it complex with temporary tables. もちろん、データに複数のクエリを必要とする特定のプロシージャが設定されている場合、そのような場合の一時テーブルの使用は、実際には推奨されます。
Avoid coding loops
Avoiding coding loops is very needed to avoid slow down of the whole sequence. これは、個々の行に対して一意の UPDATE
または INSERT
コマンドを使用し、一致する既存のデータを見つけた場合に WHERE
コマンドが保存されたデータを更新しないようにすることで実現可能です。 これらは、適切なインデックスを作成する際にも役立ちます。 しかし、その主な機能は、データを取得するためのさまざまなメソッドをグラフィカルに表示することです。 これは、順番に、必要なインデックスを作成し、データベースを最適化するために必要な他のステップを行うのに役立ちます。 また、上記の手順がすべてのデータベースにとって正しい選択でない可能性も大いにあります。 各データベースは、そのニーズに応じた最適化技術を必要とします。