この記事では、ビュー、トランザクション、インデックス、自己接続、ユーザー管理など、MySQL データベースの高度な使用方法を例を使用して説明します。ご参考までに、詳細は以下の通りです。 ビュー ビューは、いくつかの基本テーブルへの参照であり、ステートメント実行結果のフィールドタイプと制約のみを照会し、特定のデータを保存しない仮想テーブルです(基本テーブルデータが変更されると、ビューもそれに応じて変更されます)。これにより、操作、特にクエリ操作が容易になり、複雑な SQL ステートメントが削減され、読みやすさが向上します。 1.————ビューを作成します。 クエリ ステートメントとしてビュー ビュー名 (通常は v_ で始まる) を作成します。 2.————ビュー ビュー: ビュー名から*を選択します。 3.————ビューを削除: ビューのビュー名をドロップします。 取引 1. 機能: 4つの主要機能ACID (1) 原子性: トランザクションは、分割できない最小の作業単位として考えなければなりません。トランザクション全体のすべての操作は、正常にコミットされるか、失敗してロールバックされる必要があります。トランザクションが操作の一部のみを実行することは不可能です。 (2)一貫性:データベースは常に、ある一貫した状態から別の一貫した状態に移行します。 (3)分離:トランザクションによって行われた変更は、最終的にコミットされるまで他のトランザクションには表示されません。 (4)耐久性:トランザクションがコミットされると、その変更はデータベースに永続的に保存されます。 2. 使用方法: (1)トランザクションを開く:トランザクションを開いて変更コマンドを実行すると、変更は物理テーブルではなくローカルキャッシュに保存されます。 (2)トランザクションのロールバック:キャッシュ内の変更されたデータを破棄し、トランザクションの実行が失敗したことを示し、トランザクションの開始時の状態に戻ります。 (3)トランザクションをコミットする:キャッシュ内のデータ変更を物理テーブルに保持する。 索引 インデックスは特別なファイルです (InnoDB テーブルのインデックスはテーブル スペースのコンポーネントです)。テーブル内のすべてのレコードの位置情報が含まれています。より一般的に言えば、データベース インデックスは本の冒頭にある目次のようなもので、データベース クエリを高速化できます。 1. 使用方法: (1)————インデックスを表示: テーブル名からインデックスを表示します。 (2)————インデックスを作成する: テーブル名(フィールド名(長さ))にインデックス インデックス名を作成します。 (3)————インデックスを削除する: テーブル名のインデックス インデックス名を削除します。 2. パフォーマンスを確認する: (1)ランタイム検出を有効にする: プロファイリングを1に設定します。 (2)100,000番目のデータを探す: title='ha-99999' の test_index から * を選択します。 (3)テーブルのインデックスを作成する。 test_index(title(10)) にインデックス title_index を作成します。 (4)100,000番目のデータを見つける: title='ha-99999' の test_index から * を選択します。 (5)実行時間を確認する プロフィールを表示します。 要約: インデックスを使用するとクエリ速度が大幅に向上しますが、インデックスの作成時間はクエリ速度よりもはるかに遅くなります。したがって、データ テーブルが頻繁に更新される場合は、インデックスの使用は適していません。データ テーブルが大きく、長期間更新されていない場合は、インデックスを使用することをお勧めします。その他の状況ではお勧めしません。 ユーザー管理 1.————ユーザーを表示: ユーザーからホスト、ユーザー、認証文字列を選択します。 ————ユーザー権限の表示: username@host の許可を表示します。 2.————ユーザーを作成し、権限を付与します:' データベース名.* に対する権限名を、'パスワード' で識別される 'ユーザー名'@'ホスト' に付与します。 3.————権限を変更する: データベース名.* の権限名を 'ユーザー名'@'ホスト' に付与します。付与オプションは次のとおりです。 権限を更新: 権限をフラッシュします。 4.————パスワードの変更: ユーザーを更新します。set authentication_string=password('新しいパスワード')、user='ユーザー名'; 5.————ユーザーを削除する: ドロップ ドロップ ユーザー 'ユーザー名'@'ホスト'; 手動削除: user='username' のユーザーから削除します。 権限を更新: 権限をフラッシュします。 自己結合 複数の類似したテーブルからデータを 1 つのテーブルに集約し、それらを相互に接続してクエリを実行します。 1.————使用法: テーブル名を別名 1 として * を選択し、条件に基づいてテーブル名を別名 2 として内部結合します。 2.————事例: aid は番号、pid はそれが属する番号です。山西省のすべての都市を検索します。 city.* を area から cityinner として選択し、area を Province として結合します。 city.pid=province.aidwhere Province.atitle='山西省'; MySQL 関連のコンテンツに興味のある読者は、このサイトの次のトピックをチェックしてください: 「MySQL クエリ スキル」、「MySQL 共通関数の概要」、「MySQL ログ操作スキル」、「MySQL トランザクション操作スキルの概要」、「MySQL ストアド プロシージャ スキル」、および「MySQL データベース ロック関連スキルの概要」 この記事が皆様のMySQLデータベース設計に役立つことを願っています。 以下もご興味があるかもしれません:
|
<<: Docker で Selenium グリッド分散環境を構築する実用的な方法
>>: Vue で Baidu Map を呼び出して経度と緯度を取得する
WeChatアプレットのログインインターフェースは参考までに実装されています。具体的な内容は次のとお...
HTML、CSS、JSフロントエンドを学習中の皆さん、今回はショッピングモールの事例の実装をシェアし...
目次使いやすいプロジェクトを作成するvue-cli 作成ヴィートクリエイションvue-routerを...
画像をダウンロードMySQLイメージの選択 docker 検索 mysql MySQL 5.7 イメ...
導入パート1: 冒頭に書いたOneProxy は、民間ソフトウェアによって完全に独立して開発された分...
この記事では、例を使用して、MySQL インデックスがソートに与える影響を説明します。ご参考までに、...
目次1. 関数とメソッドの違い2. 良い関数の書き方2.1 正確な命名2.1.1 関数の命名2.1....
現在の環境は次のとおりです。セントロス7.5 docker-ce 18.06.1-ce 1. まずc...
目次gzip 圧縮を使用する理由は何ですか? nginxはgzipを実装するgzip処理nginx ...
次の Web デザイン プロジェクトはレスポンシブにする必要があると上司をようやく納得させることがで...
最近、私たちの小さなチームは、サーバー上の共有フォルダーを共有して、全員がパブリックリソースドキュメ...
著者 | 編集者 Awen | 制作 Tu Min | CSDN (ID: CSDNnews)不満を...
継承する1. 継承とは何か継承: まず、継承とは関係、つまりクラス間の関係です。JS にはクラスはあ...
MySQL には、msi インストールと zip 解凍の 2 つのインストール方法があります。 zi...
静的ファイルNginx は高いパフォーマンスで知られており、フロントエンドのリバース プロキシ サー...