MySQLトランザクション、インデックス、データ復旧およびバックアップ

MySQLトランザクション処理

  • トランザクションは、SQLステートメントのグループを同じバッチに入れて実行することです
  • SQLステートメントが失敗した場合、バッチ内のすべてのSQLがキャンセルされます

トランザクション特性

  • 原子性
  • 一貫性
  • 隔離
  • 耐久性

MySQLトランザクション実現方法
SET AUTOCOMMIT

  • SETステートメントを使用して自動送信モードを変更する
  • SET AUTOCOMMIT = 0; # 关闭自动提交模式 SET AUTOCOMMIT = 1; # 开启自动提交模式
  • デフォルトはMySQLでの自動送信です
  • トランザクションを使用するときは、最初に自動コミットをオフにします

注意

开启事务
SHOW VARIABLES LIKE 'event_scheduler';
设置数据库支持事务
SET GLOBAL  event_scheduler=ON;

MySQLトランザクションの実装方法
トランザクションを開始
トランザクションを開始し、トランザクションの開始点をマークします
コミット
トランザクションをデータベースに送信する
ロールバック
トランザクションをロールバックし、データをトランザクションの初期状態に戻します
SET AUTOCOMMIT = 1;
MySQLデータベースの自動送信を有効にする

MySQLトランザクション処理ステップ
ここに画像の説明を挿入

データベースインデックス

効果

  1. クエリ速度を改善してデータの一意性を確保する
  2. テーブルとテーブル間の接続を高速化して、テーブルとテーブル間の参照整合性を実現できます。
  3. データの取得にグループ化と並べ替えの句を使用すると、グループ化と並べ替えの時間を大幅に短縮できます。
  4. 検索最適化のための全文検索フィールド

分類

  • 主キーインデックス(PRIMARY KEY)
  • 一意のインデックス(UNIQUE)
  • 通常インデックス(INDEX)
  • 全文索引(FULLTEXT

主キーインデックス
特定の属性または属性の組み合わせにより、レコードを一意に識別できます
など:学生テーブル(学生番号、名前、クラス、性別など)、学生番号は一意に識別され、主キーとして使用できます。
特徴

  • 最も一般的なインデックスタイプ
  • データレコードの一意性を確保する
  • データベース内の特定のデータレコードの場所を決定する

一意のインデックス(UNIQUE)
効果
同じテーブルのデータ列の値の重複を避ける
主キーインデックスとの違い
1つの主キーインデックス
と複数の一意のインデックスのみが存在できます。

通常インデックス(INDEX)
効果:特定のデータをすばやく見つける
注意
インデックスキーワードとキーキーワードの両方を通常のインデックスに設定できます。これら
は検索条件フィールドに追加する必要があります。
データの挿入、削除、変更操作に影響を与える通常のインデックスをあまり多く追加することはお勧めできません

全文索引(FULLTEXT)
効果:特定のデータをすばやく見つける
注意
MyISAMタイプのデータテーブルに
のみ使用できます。CHAR、VARCHAR、TEXTデータ列タイプにのみ使用できます。
大きなデータセットに適しています。

インデックスの管理インデックスの
作成

  • テーブル作成時に追加
  • テーブル作成後に追加
ALERT TABLE 表名 ADD  索引类型(数据列名)

インデックスを削除

DROP  INDEX 索引名 ON    表名
ALTER TABLE 表名   DROP  INDEX  索引名
ALTER TABLE 表名   DROP  PRIMARY KEY

インデックスを表示

SHOW  INDEX(或KEYS) FROM 表名

インデックスのガイドライン

  • インデックスはできるだけ多くありません
  • 頻繁に変化するデータのインデックスを作成しない
  • データ量が少ないテーブルにはインデックスを追加しないことをお勧めします
  • インデックスは通常、検索条件フィールドに追加する必要があります

MySQLバックアップ

データベースのバックアップの必要性
重要なデータが失われないようにする
データ転送

MySQLデータベースのバックアップ方法
mysqldumpバックアップツール
SQLyogなどのデータベース管理ツールは、
データベースファイルと関連する構成ファイルを直接コピーします。

mysqldumpデータベースのバックアップ
効果
データベースのダンプ、
バックアップ用のデータベースの収集、
別のSQLサーバーへのデータの転送(必ずしもMySQLサービスではない)

mysqldump  -h 主机名 –u 用户名 –p   [options]   数据库名  
[ table1 table2 table3 ]   > path/filename.sql
 # 备份myschool数据库如: 
 > mysqldump -u root -p  myschool > d:/myschool.sql
  EnterPassword: *****

mysqldump共通オプション
ここに画像の説明を挿入
ここに画像の説明を挿入
MySQLデータベースのリカバリ
方法1
SOURCE構文を使用

SOURCE     /path/db_name.sql;

/ path /は絶対パスであり、mysqlを実行しているユーザーが
MySQLコマンドラインでSOURCE Execute を読み取る権限を持っているファイルである必要があります

方法2
はMySQLクライアントを使用する

mysql –u root –p  dbname  <  /path/db_name.sql;

SQLステートメントを使用してデータをエクスポートおよびインポートする

書き出す

SELECT   *   INTO   OUTFILE   'file_name'  
    FROM   tbl_name

インポート

LOAD   DATA   INFILE   'file_name '   
    INTO   TABLE   tbl_name[FIELDS]

おすすめ

転載: blog.csdn.net/zmzdmx/article/details/108084262