史上最も簡単なMySQLチュートリアル(35)「データバックアップとリストア(上)」


データのバックアップとリストア
基礎概念:バックアップし、現在の既存のデータまたはレコードを1部保存する.リストアし、バックアップ時の状態にデータを復元します.データのバックアップとリストアを行う理由データの紛失を防止する.データ記録を保護します.データ・バックアップとリストアの方法は、データ・テーブル・バックアップ、単一テーブル・データ・バックアップ、SQLバックアップ、インクリメンタル・バックアップに分けられます. 
データテーブルのバックアップ
データテーブルのバックアップはSQLでバックアップする必要はありません.私たちは直接データベースフォルダに入って対応するテーブル構造とデータをコピーすることができます.データを復元する必要がある場合は、バックアップ(コピー)の内容をそのまま戻してください.ただし、データ・テーブルのバックアップには、ストレージ・エンジンによって異なるため、前提条件があります.ストレージエンジンの場合、MySQLは主に2種類使用され、それぞれInnoDBとMyisamで、どちらも無料です.ここでは、ストレージエンジンの知識を科学的に普及させることができます.
 
特長
Myisam
InnoDB
BDB
Memory
Archive
一括挿入の速度
高い
低い
高い
高い
非常に高い
トランザクションのセキュリティ
——
サポート
サポート
——
——
全文索引
サポート
5.5バージョンのサポート
——
——
——
ロックメカニズム
テーブルロック
行ロック
ページロック
テーブルロック
行ロック
ストレージの制限
いいえ
64TB
いいえ
あります
いいえ
Bツリーインデックス
サポート
サポート
サポート
サポート
——
ハッシュ索引
——
サポート
——
サポート
——
クラスタインデックス
——
サポート
——
——
——
データ・キャッシュ
——
サポート
——
サポート
——
インデックスキャッシュ
サポート
サポート
——
サポート
——
データ圧縮
サポート
——
——
——
サポート
スペースの使用
低い
高い
低い
N/A
非常に低い
メモリ使用量
低い
高い
低い
中程度
低い
外部キーのサポート
——
サポート
——
——
——
このうち、MyisamとInnoDBのデータ格納方法にも違いがあります.Myisam:テーブル、データ、インデックスはすべて個別に格納されます.InnoDB:テーブル構造のみで、データはすべてibdファイルに格納されます.次のSQL文を実行し、Myisamのデータ格納方法をテストします.
[plain] view plaincopy
  • --Myisamテーブル
  • を作成
  • create table my_myisam(  
  • id int  
  • )charset utf8 engine = myisam;  
  •   
  • --表構造を表示する
  • show create table my_myisam;  
  •   
  • --挿入データ
  • insert into my_myisam values(1),(2),(3);  
  •   
  • --表示データ
  • select * from my_myisam;  

  • 上図に示すように、my_myisamという名前のストレージエンジンMyisamというデータテーブルを作成しました.Myisamのストレージ特性を検証するために、dataフォルダに具体的なデータストレージ状況を確認することができます.上図に示すように、テーブルmy_myisamは1つしか作成されていませんが、Myisamは3つのストレージファイルを生成します.それぞれ:my_myisam.frm:ストレージテーブルの構造;my_myisam.MYD:テーブルのデータを格納する.my_myisam.MYI:テーブルのインデックスを格納します.ここで、この3つのファイルをtestooデータベースにコピーします(MySQLデータファイルの格納場所を見つける方法については、MySQLデータファイルの格納場所の詳細を参照してください):次のSQL文を実行してテストします.
    [plain] view plaincopy
  • -データベースの切り替え
  • use testoo;  
  •   
  • --testooデータベースのテーブル
  • を表示します.
  • show tables;  
  •   
  • --表を表示my_myisam  
  • select * from my_myisam;  

  • 上図に示すように、ファイルをコピーすることで、データテーブルのバックアップが完了したことは明らかです.ここで、InnoDBストレージエンジンで生成された.frmおよび.idbファイルを別のデータベースにコピーしたり、show tablesコマンドでコピーされたテーブル名を表示したりすることができますが、データは取得できません.次のSQL文を実行してテストします.
    [plain] view plaincopy
  • --testooデータベースのテーブル
  • を表示します.
  • show tables;  
  •   
  • --表を表示my_class  
  • select * from my_class;  

  • 以上のテストにより、データテーブルのバックアップはMyisamストレージエンジンに適していることが明らかになりました.また、バックアップの方法も簡単で、Myisamストレージエンジンで生成された.frm.MYD.MYIの3つのストレージファイルを新しいデータベースに直接コピーすればいいです.お知らせ:記号[]で囲まれた内容は、オプションを表す.符号+は、接続の意味を表す.