Mysql データベースの高度なビュー、トランザクション、インデックス、自己接続、ユーザー管理の例の分析の使用

Mysql データベースの高度なビュー、トランザクション、インデックス、自己接続、ユーザー管理の例の分析の使用

この記事では、ビュー、トランザクション、インデックス、自己接続、ユーザー管理など、MySQL データベースの高度な使用方法を例を使用して説明します。ご参考までに、詳細は以下の通りです。

ビュー

ビューは、いくつかの基本テーブルへの参照であり、ステートメント実行結果のフィールドタイプと制約のみを照会し、特定のデータを保存しない仮想テーブルです(基本テーブルデータが変更されると、ビューもそれに応じて変更されます)。これにより、操作、特にクエリ操作が容易になり、複雑な SQL ステートメントが削減され、読みやすさが向上します。

1.————ビューを作成します。

クエリ ステートメントとしてビュー ビュー名 (通常は v_ で始まる) を作成します。

2.————ビュー ビュー:

ビュー名から*を選択します。

3.————ビューを削除:

ビューのビュー名をドロップします。

取引

1. 機能: 4つの主要機能ACID

(1) 原子性: トランザクションは、分割できない最小の作業単位として考えなければなりません。トランザクション全体のすべての操作は、正常にコミットされるか、失敗してロールバックされる必要があります。トランザクションが操作の一部のみを実行することは不可能です。

(2)一貫性:データベースは常に、ある一貫した状態から別の一貫した状態に移行します。

(3)分離:トランザクションによって行われた変更は、最終的にコミットされるまで他のトランザクションには表示されません。

(4)耐久性:トランザクションがコミットされると、その変更はデータベースに永続的に保存されます。

2. 使用方法:

(1)トランザクションを開く:トランザクションを開いて変更コマンドを実行すると、変更は物理テーブルではなくローカルキャッシュに保存されます。
begin;またはstart transaction;

(2)トランザクションのロールバック:キャッシュ内の変更されたデータを破棄し、トランザクションの実行が失敗したことを示し、トランザクションの開始時の状態に戻ります。
rollback;

(3)トランザクションをコミットする:キャッシュ内のデータ変更を物理テーブルに保持する。
commit;

索引

インデックスは特別なファイルです (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データベース設計に役立つことを願っています。

以下もご興味があるかもしれません:
  • MySQLインデックストランザクションの詳細な分析
  • MySQL データベースのインデックスとトランザクション
  • MySQLデータベースのトランザクションとインデックスの詳細な説明
  • MySql のインデックス、ロック、トランザクションの知識ポイントのまとめ
  • MySql の知識ポイント: トランザクション、インデックス、ロックの原則、使用状況の分析
  • MySQL トランザクション インデックスの知識の概要

<<:  Docker で Selenium グリッド分散環境を構築する実用的な方法

>>:  Vue で Baidu Map を呼び出して経度と緯度を取得する

推薦する

HTML で div+CSS を使用してシンプルな矢印アイコンを実装するコード

ウェブデザインでは、ウェブページを美しく見せるために矢印を装飾としてよく使用します。現在、多くのウェ...

mysql と oracle のデフォルトのトランザクション分離レベルの説明

1. トランザクション特性(ACID) (1)原子性トランザクションに関係するプログラムによって実行...

Vue2とVue3の兄弟コンポーネント通信バスの違いと使い方

目次vue2.x vue3.x tiny-emitterプラグインの使用Mittプラグインの使用vu...

IE6/7 における a.getAttribute(href,2) 問題の分析と解決

簡単な説明<br />IE6および7では、一般的なaタグ(HTMLで記述され、DOM操作...

MySQLクエリ文の実行プロセスを理解するための記事

序文要件を満たす特定のデータをデータベースから取得する必要があります。Select ABC FROM...

MySQL パーティション テーブルの基本入門チュートリアル

序文最近のプロジェクトでは、大量のデータを保存する必要があり、このデータには有効期限があります。クエ...

Tomcat サーバーの設定と Web プロジェクトの公開に関する IDEA グラフィック チュートリアル

1. Webプロジェクトを作成したら、Tomcatを例にサーバーを構成する必要があります。 2. 実...

HTML タグに類似: strong および em、q、cite、blockquote

XHTML には似た機能を持つタグがいくつかあります。もちろん、ここでの類似性とは意味の類似性を指...

カスタムポップアップボックスを実装するためのJavaScriptシングルトンモード

この記事では、カスタムポップアップボックスを実装するためのJavaScriptシングルトンモードの具...

MySQL における大規模オブジェクトのマルチバージョン同時実行制御の詳細な説明

MySQL 8.0: InnoDB のラージ オブジェクトに対する MVCCこの記事では、MySQL...

さまざまなSQL結合を簡単に学ぶ

SQL JOIN 句は、テーブル間の共通フィールドに基づいて 2 つ以上のテーブルの行を結合するため...

Vueでパスワードの表示と非表示機能を実装するアイデアを詳しく解説

効果: アイデア:入力タイプ属性を使用して、タイプ値がテキストの場合はパスワードを表示し、タイプ値が...

MySQL データ操作 - DML ステートメントの使用

例示するDML(データ操作言語)とは、データベースの追加、削除、変更を行うための操作命令のことです。...

MySQLデータベースでサポートされているストレージエンジンの比較

目次ストレージエンジンMySQL でサポートされているストレージ エンジン同時実行制御ロック粒子をロ...

Vue.js ソースコード解析のカスタム手順の詳細な説明

序文コア機能のデフォルトの組み込みディレクティブ (v-model および v-show) に加えて...