※当サイトの記事には、広告・プロモーションが含まれます。

『ENGINE=InnoDB DEFAULT CHARSET=utf8 ;』って何なのか?と思ったので

データベースによるデータ管理 | 東京大学グローバル消費インテリジェンス寄附講座 でMySQLsql文の中に『ENGINE=InnoDB DEFAULT CHARSET=utf8 ;』って出てきたので気になって調べてみました。

 

InnoDB(イノデービー)はMySQLのためのデータベースエンジンであり、MySQL ABが配布している全てのバイナリに標準搭載されている。MySQLと使用できる他のデータベースエンジンに対する改良点として、PostgreSQLに似たACID互換のトランザクションに対応していることがある。また、外部キーもサポートしている。(これを宣言的参照整合性という)

 

InnoDBトランザクションに対応したデータベースエンジンということらしい。

  1. 運用視点な『MyISAM』と『InnoDB』と。 MySQL5.5からトランザクション処理ができる『InnoDB』がデフォルトストレージとなりましたし、とりあえず『InnoDB』にしとこうという風潮から、ストレージが『InnoDB』であることも多いのですが、実は蓋を開けて見るとまだまだ『MyISAM』で動いているサービスがたくさんあります。 今回は運用面から見た両者の違いをみてみたいと思います。 同じMySQLですが、『InnoDB』の運用と『MyISAM』の運用は注意するポイントが違います。2014/03/19

運用視点なMyISAMとInnoDBと。 | LexTech

 

⇩「データベースエンジン(ストレージエンジン)」に関しては下記サイトが詳しいです。

MySQLの「InnoDB」と「MyISAM」についての易しめな違い | Programming log - Shindo200 イベント参加記録とプログラミング系の雑記

 

⇩「ロック」に関して

MySQL InnoDBの行レベルロック

MySQL InnoDBの行レベルロック | There's an echo in my head

 

⇩「ストアドプロシージャ」「ストアドファンクション」に関して

はじめてのMysqlストアドプロシージャ・ストアドファンクション

(※ストアドプロシージャはMySQLバージョン5.0から使えるようになったそうです。それまではPostgreSQLでしか使えなかった機能だそうです。)

 

いろいろ脱線してしまいましたが、そして、難しいことは分からないですが、

mysql> CREATE TABLE tweets (
    tweet_id BIGINT, 
    user_id BIGINT,
    text LONGTEXT,
    created_at DATETIME
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;

『ENGINE=InnoDB DEFAULT CHARSET=utf8 ;』はMySQLの『データベースエンジン』を『InnoDB』にして『デフォルトの文字コード』を『UTF-8』にして処理するってことだと思います。

 

⇩ 下記サイトはMySQLの高度なテクニックを解説してるようです。

知って得するInnoDBセカンダリインデックス活用術!