DataBase MySQL

MySQLのデータ構造

投稿日:2013年2月7日 更新日:

MySQLのインストールは簡単ですが、
ディレクトリ構造を知っておくことは障害対応にも必要ですのでまとめです。

MYSQLのデータ構成

/etc/my.cnfでメインディレクトリやソケット(mysqlへのインターフェイスアプリ)を設定します。

[mysqld]
# vi /etc/my.cnf
datadir=[ディレクトリ]
socket=/var/lib/mysql/mysql.sock
[ディレクトリ]/ibdata1 テーブルスペース
[ディレクトリ]/ib_logfole1    REDOログ
[ディレクトリ]/ib_logfole2    REDOログ
[ディレクトリ]/relay-log.info   レプリケーション情報 SQLスレッドによって更新
[ディレクトリ]/master.info    レプリケーション情報 I/Oスレッドで更新
[ディレクトリ]/mysqld-relya-bin.xxxxxx    バイナリログ
[ディレクトリ]/[データベース名]/db.opt
[ディレクトリ]/[データベース名]/[テーブル名].frm
※バイナリログのパスはrelay-log.infoで確認できます。

テーブル構造

InnoDBの場合
InnoDBを選択すると、データベース名のサブディレクトリ内には、「テーブル名.frm」ファイルのみが作成されます。
レコードデータやインデックスデータは、テーブルスペース(ibdata1)に格納されます。

MyISAMの場合
[ディレクトリ]/[データベース名]/[テーブル名].frm テーブル構造データ
[ディレクトリ]/[データベース名]/[テーブル名].MYI インデックスデータ
[ディレクトリ]/[データベース名]/[テーブル名].MYD レコードデータ

Gooleアドセンス用336

Gooleアドセンス用336

-DataBase, MySQL

執筆者:

関連記事

mysql

ERROR 1840 (HY000) at line 24: @@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_EXECUTED is empty.

ダンプをインポートしようとすると下記エラーが表示されてインポートできませんでした。 [root@centos]# mysql -u root -p reset master; するとインポートできまし …

mysql

mysqldumpでテーブル毎のダンプを圧縮して取得するスクリプト

mysqldumpではデータベースを指定して一括してダンプを取得できます。テーブル毎のダンプも取得できます。 しかし、一括して取得したダンプの1つのテーブルだけをインポートすることはできません。これは …

mysql

MySQLのバイナリログを見てスレーブ停止の原因を調査する

以前スレーブ側の更新がとまっていることに気付きました :x001: その時のトラブルシューティングの手順です。 INDEX1 1.スレーブ側で、SlaveS tatusを確認する2 2.スレーブ側のロ …

mysql

MySQLのChar型は”(ダブルクォーテーション)ではなく'(シングルクォーテーション)でSELECT

タイトルの通り MySQLのChar型は”(ダブルクォーテーション)ではなく'(シングルクォーテーション)で囲ってSELECT しなければなりません。 正確には、そうしなければパフォーマン …

mysql

MySQLのexists

exists自体はほとんどのSQL自体に実装されていると思われます。 しかし、使用方法を誤るとレスポンスに大きな影響を与えてしまします。 副問合せであるexists内部で、集問い合わせのキー列と結合し …