テーブル作成ステートメントや単純な 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)、クエリに結合が多すぎます
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 null6)、完全な接続(両方で使用可能)追加) ユニオンを結合して再リタイアすることができます *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 中国語 Web サイトの他の関連記事を参照してください。