システム屋日誌

情報システム構築、開発手法を中心に気が付いたことを書き留めます。ちいさなことから、おおきなことまで。もちろん、どうでもいいことも。。。
<< August 2018 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 >>
 
RECENT COMMENT
RECENT TRACKBACK
れいねっとHP
http://www.rey-net.com
MOBILE
qrcode
PROFILE
無料ブログ作成サービス JUGEM
 
MySQLのテーブル型
私はLAMP(Linux+Apache+MySQL+PHP)でWebサーバを構築することが最も多いです。そこで、他の開発者と話をしていてもっとも説明が難しいのがデータベース。自分の知識の整理もかねて、データベースに関するメモ書きをしていこうかと思いました。

今回は、テーブル型について。
MySQLでは、複数のテーブル型(BDB、HEAP、InnoDB、MyISAM)が使えます。MySQL が標準で使う型は、MyISAM型です。例えば、phpMyAdmin でテーブルを生成すると、自動的にこの型になっています。

各テーブル型は、それぞれ特徴があり、用途をます。

トランザクション処理 InnoDB型・BDB型
一時テーブル  HEAP型
外部キー    InnoDB型
BLOB/TEXTデータ型  MyISAM型

トランザクション処理とは、データベース上で複数の処理を一括で行うことです。処理結果は、失敗か成功かの2つに1つの結果が返されます。データベースのACID特性のA、原始性(Atomicity)を保つために必要な機能です。
ACIDのその他の特性も、MySQLのトランザクション処理によって実現できます。

【一貫性(Consistency)】
 開始時と終了時にデータベースが整合性を保つ
  →MVCC(多版型同時実行制御)
【隔離性または独立性(Isolation)】
 当該処理が、他の処理から完全に隔離される
  →細かい粒度のロック
【耐久性または永続性(Durability)】
 成功した処理はいつまでも残り、取り消されない
  →トランザクションログの取得(ログ法)とクラッシュリカバリ

外部キーは、複数のテーブル間で親子関係を作るときに便利です。親テーブルのレコードを処理すると、親テーブルにリンクした子テーブルの関連レコードも自動的に処理することができます。例えば、親テーブルのレコードを削除したとき、子テーブルの値も削除することができます。InnoDB型以外を使った場合、Web アプリケーションで親子間で関連するレコードを削除するロジックを考える必要があります。

BLOBは、大量のバイナリデータを格納することができるデータ型です。

参考文献:
MySQL全機能リファレンス
コメント
コメントする









 
トラックバック
この記事のトラックバックURL
http://technology.rey-net.com/trackback/486739