mysql の高度な使用法

亚连
リリース: 2019-01-30 15:26:07
オリジナル
5827 人が閲覧しました

テーブル作成ステートメントや単純な SQL ステートメントなど、Mysql の基本操作をマスターすると、mysql 自体でいくつかの構成操作を実行したり、Mysql を最適化することもできます。より高度な mysql の知識については、php 中国語 Web サイトの mysql チュートリアル チャンネルをご覧ください。

1. Mysql 設定ファイル。

Windows では、my.ini ファイルです:

1)、log-bin: マスター/スレーブ レプリケーションのログ ファイルを表し、マスター/スレーブ レプリケーションに使用されます。

2)、log-error="SO3JFYNN8EW6GMO.err": エラーログを示します。

3)、server-id=1: このマシンのシリアル番号が 1 であることを示します。

4)、datadir=D:/mysql5.7/Data: データベース情報が保存されるディレクトリ、

2。mysql アーキテクチャは、上から下に 4 つの層に分かれています:
1)、接続層:接続処理、認証、関連セキュリティ ソリューション。

2)、サービス層: 完全な SQL 最適化、分析、キャッシュ、その他の機能。

3)、エンジン層: データの保存と抽出を担当します。

4) ストレージ層: データ ストレージ層は主にファイル システムにデータを保存し、エンジンとの対話を完了します。

3. mysql エンジン

1) 使用されているエンジンを確認します:

show engins または show

MYISAM と INNODB の比較

は、主キーと外部キーの値のペアをサポートしません。

テーブル ロックをサポートします。高い同時実行には適していません。行ロックは高い同時実行に適しています。

インデックスとデータをキャッシュするだけで、メモリ要件が高くなります。

テーブル スペースは小さいです。多くの場合、パフォーマンスに重点を置く 多くのクエリがある状況に適しています。重要な事項に重点を置きます。

4. mysql パフォーマンスの最適化が低下する理由

1)、不適切に作成されたクエリ ステートメント 2)、インデックスの失敗

ユーザー(名前)にインデックスidx_user_nameを作成します

複合インデックスを作成します

誰誰誰誰が誰が誰が誰が誰が、idx_using、インデックス idx_user_name_email を作成、user(name,email)

3)、クエリに結合が多すぎます

4)、サーバー調整とさまざまなパラメーター

5、 mysqlの実行順序

マシンはreadから開始します。

1) 内部接続 e SELECT*From Tablea A Inner Join Tableb B on A.Key = B.Key。接2)、左外部接続、SELECT*From Tablea A Left Join Tableb B on A.Key = B.Key

Bがそうでない場合はNULLで補完します。连3) パート

. 。连5)、すぐ外側に接続し、左側のテーブル

の一部をtableaから削除し、右側のジョブテーブルb b on a.Key = b.Key where a.Key is null

6)、完全な接続(両方で使用可能)追加) ユニオンを結合して再リタイアすることができます *from tablea a left tableb b on a.Key = b.Key Union

(select *from tablea a right job tableb)

7)、中央は空です

select *from tableA A left join tableB B on A.key=B.key where B.key is null Union

(select *from tableA A right join tableB B on A.key=B) .key (A.key は null)

6. インデックスとは何ですか?

1) インデックスは、検索効率を向上させるデータ構造です。迅速に正しい順序でデータ構造を見つけます。

データベースは特定のアルゴリズムを満たすデータ構造を維持するため、このデータ構造は特定の方法でデータを指し、これらのデータ構造に高度な超検索アルゴリズムを実装できます。

BTREE インデックス (特別な指定なし)

頻繁に削除されるフィールドはインデックスの構築には適していません。

2)、利点

データ取得の効率を向上させ、データベースのIOコストを削減します

インデックス列を介してデータを並べ替え、データ並べ替えのコストを削減し、CPU消費量を削減します

3)、欠点

インデックスもテーブルにディスク領域を占有します。

テーブル更新時にインデックスを維持する必要があり、更新効率が低下します。

インデックスは効率を向上させるための要素にすぎず、インデックスの構築には時間と労力がかかります。

4) 単一値インデックスには列が 1 つだけ含まれており、テーブルには複数の単一値インデックスを持つことができます。

5)、一意のインデックス、インデックス列の値は一意である必要があり、空にすることができます。

6)、複数の列を含む複合インデックス。

7)、インデックス関連操作

ユーザー(名前)にインデックスidx_user_nameを作成

ユーザーを変更(名前)にインデックスidx_user_nameを追加

ユーザーからのインデックスを表示

ユーザーのインデックスidx_user_nameを削除

8)、インデックス構造

ハッシュ インデックス

フルテキスト インデックス

R ツリー インデックス

BTree インデックス:

7. どのような状況でインデックスを作成する必要がありますか:

1)、メイン ビルダーは自動的に一意のインデックスを作成します

2)、クエリ条件として頻繁に使用されるフィールドにはインデックスを作成する必要があります

3)、クエリ内の他のテーブルに関連付けられたフィールドには、外部リレーションシップによってインデックスを作成する必要があります。

4) 頻繁に更新されるフィールドはインデックスの作成には適していません。

5)。

6) 単一インデックスまたは複合インデックスの選択。

7) クエリ内の並べ替えフィールドにアクセスすると、効率が向上します。

8)、クエリ内の統計またはグループ化フィールド

8. インデックスを作成する必要がない場合:

1)、テーブルレコードが少なすぎる

2)、頻繁に追加されるテーブル、または削除されました

3)、データが重複し、均等に分布しているフィールド。

9. パフォーマンス分析:

mysql クエリオプティマイザー

以上は、Mysql の高度な知識をまとめたものであり、皆様のお役に立てば幸いです。

関連記事:

MySQLの基本構文

PHP MySQLのWhere句をマスターする

以上がmysql の高度な使用法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート