Mysqlパフォーマンスチューニング(2)

序文

前回の記事  から、mysqlの最適化部分を紹介し始めました。前回の記事では、最初にLinuxでのmysqlのインストールと構成を紹介し、次に、インデックスの概要、インデックスの長所と短所など、インデックスの関連コンテンツを紹介しました。また、インデックスについても紹介しました。ストレージエンジンとインデックスの基本的な原則は、B +ツリーとBツリーの違いと接続です。最後に、インデックスの分類、作成、変更、表示と削除について紹介します。最後の紹介は、インデックスを作成する主な原則の一部です。
  次の記事では、主にビューの基本概念、ビューの作成または最終ビューへの変更など、ビューの知識を紹介します。もう1つの紹介は、トリガーの関連コンテンツです。これには、主にトリガーの関連概念、ログテーブルの作成、トリガーの挿入、変更、および削除が含まれます。
  次に、ビューに関連するコンテンツを紹介します。

1つ、表示

1.概要を表示

  ビューは実際には一種の仮想テーブルです。ビューは実際にはデータベースに存在しません。行と列のデータは、ビューを定義するクエリで使用されるテーブルから取得され、ビューが使用されるときに動的に生成されます。素人の用語では、ビューはselectステートメントが実行された後に返される結果セットです。したがって、ビューを作成するときの主な仕事は、このSQLクエリステートメントを作成することです。
  通常のテーブルと比較して、ビューには次の利点があります。

  • シンプル:ビューを使用するユーザーは、対応するテーブルの構造、関連する条件、およびフィルター条件を気にする必要はありません。ユーザーにとっては、フィルター処理された複合条件の結果セットです。
  • セキュリティ:ビューを使用するユーザーは、クエリが許可されている結果セットにのみアクセスできます。テーブルの権限管理を特定の行または列に制限することはできませんが、ビューを介して簡単に実装できます。
  • データの独立性:ビューの構造が決定されると、テーブル構造の変更によるユーザーへの影響を防ぐことができます。ソーステーブルに列を追加してもビューには影響しません。ソーステーブルの列名を変更することで、ビューを変更することで解決できます。影響。

2.ビューを作成または変更します

  次に、ビューの作成と変更について説明します。最初に紹介するのは、ビューの作成です。ビューを作成するための構文は次のとおりです。

create [or replace] [algorithm = {
   
   undefined | merge | temptable}]
view view_name [(column_list)]
as select_statement
[with [cascaded | local] check option]

  次に、ビューを変更する方法を紹介します。ビューを変更するための構文は次のとおりです。

alter [algorithm = {
   
   undefined | merge | temptable}]
view view_name [(column_list)]
as select_statement
[with [cascaded | local] check option]

  ここで注意が必要なのは、文法の対応する関連オプションを紹介することです。

  • [cascaded | local]チェックオプション付き:レコードがビューの条件を満たさなくなるようにデータを更新できるようにするかどうかを決定します。
  • ローカル:このビューの条件が満たされている限り、更新できます。
  • カスケード:更新する前に、このビューのすべてのビューのすべての条件が満たされている必要があります。

  ケースを使用して、ビューを作成および変更します。特定の表とデータは前の記事のデータです具体的なsqlステートメントは次のとおりです。

create or replace view city_country_view
as
select t.*, c.country_name from country c, city t where c.country_id = t.country.id;

3.ビューを表示します

  以前にビューを変更および作成する方法を紹介し、実際にビューを作成および変更する方法を示しました。次に、ビュービューの関連コンテンツを紹介します。
  実際には、mysql5.1バージョンから始まるショーテーブルコマンドが使用されている、テーブルの名前だけではなく表示されますが、ビューの名前も表示されます。何もありショービューはコマンドなかっ別にそのディスプレイに表示します具体的なコマンドは次のとおりです。

show tables;


  また、show table statusコマンドを使用すると、テーブル情報を表示できるだけでなく、ビュー情報も表示できます。

show table status

4.ビューを削除します

  最後に、削除されたビューを紹介します。具体的な構文は次のとおりです。

drop view [if exists] view_name [, view_name]...[restrict | cascade];

  ビューを削除する例を紹介しました。前に作成したビューcity_country_viewはビューを削除します。具体的な内容は、次のとおりです。

drop view city_country_view;

第二に、トリガー

  ビューの概要や、ビューの作成、変更、表示、削除に関連する操作など、ビューの関連コンテンツを紹介しました。次に、トリガーの基本概念やトリガーの作成など、トリガーの関連コンテンツを紹介します。トリガーを削除し、トリガーおよびその他の関連コンテンツを表示します。まず、トリガーの基本的な内容をご紹介します。

1.トリガーの基本概念

  トリガーは、テーブルに関連するデータベースオブジェクトであり、トリガーで定義され、挿入/更新/削除の前または後に実行されるSQLステートメントのセットを参照します。トリガーのこの機能は、アプリケーションがデータベース側でデータの整合性、ロギング、データ検証、およびその他の操作を保証するのに役立ちます。エイリアスOLDおよびNEWを使用して、トリガー内の変更されたレコードコンテンツを参照します。これは、他のデータベースと同様です。現在のトリガーは、行レベルのトリガーのみをサポートし、ステートメントレベルのトリガーはサポートしません。特定のトリガータイプは次のように使用されます。

2.トリガーを作成します

  次に、トリガーを作成するための構文構造を紹介します。

create trigger trigger_name
before/after insert/update/delete
on tb1_name [for each row]
trigger_stmt;

  トリガー作成の文法を紹介した後、対応するトリガーを作成するケースを示しましょう。この場合の要件は次のとおりです。

  empテーブルのデータ変更ログは、追加、変更、削除などのトリガーを通じて記録されます。

  したがって、最初にログテーブルを作成します

create table emp_logs(
	id int(11) not null auto_increment,
	operation varchar(20) not null commit '操作类型, insert/update/delete',
	operate_time datetime not null comment "操作时间",
	operate_id int(11) not null comment "操作表的ID",
	operate_params varchar(500) comment "操作参数",
	primary key(`id`)
)engine=innodb default charset=utf8;

  作成したテーブルにトリガーを作成し、追加、変更、削除など、トリガーを介してempテーブルのデータ変更ログemp_logsを記録します。具体的なステートメントは次のとおりです。

create trigger emp_insert_trigger
after insert on emp
for each row
begin
	insert into emp_logs(id, operation, operate_time, operate_id, operate_params)
	values(null, 'insert', now(), new.id, concat('插入后(id:', new.id, ',name', new.name,', age:', new.age, ', salary: ', new.salary, ')'));
end$

create trigger emp_update_trigger
after update on emp
for each row
begin
	insert into emp_logs(id, operation, operate_time, operate_id, operate_params)
	values(null, 'update', now(), new.id, concat('修改前(id:', old.id, ',name', old.name,', age:', old.age, ', salary: ', old.salary, ')', '修改后(', new.id, ',name', new.name,', age:', new.age, ', salary: ', new.salary, ')'));
end$

create trigger emp_update_trigger
after delete on emp
for each row
begin
	insert into emp_logs(id, operation, operate_time, operate_id, operate_params)
	values(null, 'delete', now(), old.id, concat('删除前(id:', old.id, ',name', old.name,', age:', old.age, ', salary: ', old.salary, ')'));
end$

3.トリガーを削除します

  トリガーの作成と変更を紹介しました。次に、トリガー作成の構文構造を紹介します。

drop trigger [schema_name.]trigger_name

  実際、schema_nameが指定されていない場合、デフォルトは現在のデータベースです。

4.トリガーを表示します

  以前にトリガーの作成、削除、および変更を導入し、次にトリガーを確認しました。show triggersコマンドを実行すると、トリガーのステータス、構文、およびその他の情報を表示できます

show trigger;

総括する

前回の記事  から、mysqlのパフォーマンスの最適化について紹介します。この記事では、ビューとトリガーの関連コンテンツを紹介します。ビューには、主にビューの基本概念、ビューの作成と変更、およびビューの表示と削除が含まれます。さらに、トリガーの基本概念と、トリガーの作成、削除、表示のさまざまな操作を主に紹介するトリガーを紹介します。したがって、mysqlは非常に重要なスキルです。コンピューター内のほとんどすべてのジョブにはmysqスキルが必要です。したがって、特別な習熟が必要です。人生は終わりがなく、闘争は終わりがありません。私たちは毎日一生懸命働き、一生懸命勉強し、常に能力を向上させ、何かを学ぶと信じています。いい加減にして!

おすすめ

転載: blog.csdn.net/Oliverfly1/article/details/109273428