MySQLの最適化の主

MySQLのテーブルのレプリケーション

MySQLのテーブルのコピーとは何ですか?
MySQLのテーブルをコピーします。テーブルのデータ、インデックス、デフォルト値などを含む構造


コピーテーブルの構造

	create table tablename_1 like tablename ;
 
解析:
			tablename -->  被复制的表
			tablename_1  -->  复制的表

テーブルのデータをコピーします。

	create table tablename_1 select * from tablename ;

コピーテーブル構造とデータ

	create table tablename_1 like tablename ;
	insert into tablename_1  select * from tablename ;

指数

インデックスとは何ですか?
インデックスは、MySQLの効率的なデータ収集を支援するための方法であるデータ構造を

どのような指標

  1. 頻繁にクエリフィールドとして
  2. クエリフィールド内の他のテーブルに関連付けられています

どのような索引付けされていません

  1. 追加および削除テーブルの頻繁な変更
  2. 少ないデータテーブル
  3. 平均データ重複やテーブルのフィールドの分布(あまり重要指標を繰り返しません)

インデックスの分類

  1. 主キー索引

  2. インデックスのみ

    索引列の値は一意であるが、自由な値を許可する必要があります。それは、インデックスの組み合わせであれば、列の値は一意である必要があります。

  3. 一般的な指標

    これは、任意の制限なしで、基本的な指標です。

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

インデックスを追加

	语法:alter table tablename add 索引类型 索引名称(字段名)
	
	alter table tablename add index index_name(name); 
	主键索引一般建表时都会设置为id
	alter table tablename add primary key(name);
	alter table tablename add unique unique_name(name);

インデックスの削除

	语法: alter table tablename drop index 索引名称
	
	
	如果主键带有自增长,删除主键索引前必须取消自增长
	假设自增长字段为id
	alter table tablename change id id int;
	alter table tablename drop primary key;

ビューのインデックス

	show index from tablename

MySQLの景色

ビューとは何ですか?
公式の説明:現在のビューは、仮想テーブルで、論理テーブル自体はデータが含まれていません。データ・ディクショナリに格納されているselect文として。
フォーク説明:定義されたクエリを実行するためのショートカット(参考用)

アドバンテージビュー

  1. シンプル
  2. セキュリティ
  3. 独立したデータ

ビューを作成します。

	create view viewname as sql语句;
	
示范代码:
	create view sel_user as select * from user;
	
	show tables;
	
	select * from sel_user;	

ビューの削除

	drop view viewname;

クエリビュー

	show tables;

前処理

前のMySQLとは何ですか?
個人的な解釈:SQL文の代わりにプレースホルダと動的部分に繰り返し実行されます(?)

アドバンテージの前処理

  1. セキュリティ
  2. 効率を改善する(リユース)

文法

创建预处理语句
	prepare prepare_name from 'sql语句';

删除预处理语句
	drop prepare prepare_name;

如何调用预处理语句?
	设置一个变量	set @i = 3;
	execute prepare_name using @i;

示范代码:
		prepare sel_id_name from 'select * from user where id = ?'; 
		set @i=3;
		EXECUTE sel_id_name using @i;

業務

使用総務前提:表エンジンはInnoDBの必要があります

トランザクションとは何ですか

公式の説明:ワークの単一の論理ユニットによって実行される一連の動作は、いずれかの完全に実行されるか、完全に実行されません。

4つの特性

不可分性

トランザクションのすべての操作、完了またはすべてを完了していないのいずれかは、リンクの途中で終わりません。トランザクションの実行中にエラーが発生したトランザクションが同じことを行ったことがないとして、それは、トランザクションの開始前の状態にロールバックされます。

一貫性(安定性)

そして、トランザクション開始前に、トランザクションの終了後に、データベースの整合性が破損していません。データは、そうでない場合は、トランザクションが撤退、プリセットルールに完全に準拠するように書かれています

隔離

トランザクションの結果は、その他の事項に影響を与える場合には、複数の同時トランザクションを同時に読み取りおよび書き込み、そのデータを修正し、その他の事項を撤回します。

永続的な(信頼性)

取引後、データを変更すると、システム障害が失われることはありません場合でも、永続的です。(InnoDBのテーブル駆動再構成は、ログ・ファイルの変更を利用します)

キーワード

  1. コミット提出
  2. ロールバックロールバック

コミット使用して作業を開始し、終了rollbacj


知識サプリメント

ビューのテーブル構造

	desc tablename;

データ・テーブル・ステートメントを作成取得します。

	show create table tablename;
	
	结果:
			CREATE TABLE `t1` (
 				 `id` int(12) unsigned NOT NULL AUTO_INCREMENT,
				  `name` char(15) DEFAULT NULL,
				  `sex` char(1) DEFAULT NULL,
				  `age` int(5) DEFAULT NULL,
				  PRIMARY KEY (`id`)
			) ENGINE=MyISAM AUTO_INCREMENT=26 DEFAULT CHARSET=utf8mb4

テーブル構造を変更する方法

	alter table tablename change 原字段名 新字段名 数据类型 [primary key | default | not null | ...];

ヤン元帥元帥からブログ
転載海賊版予約のソースを明記してください

おすすめ

転載: blog.csdn.net/KinCae/article/details/90676314