• ベストアンサー

InnoDBとMYISAMとBDBの違い

Mysqlのテーブルの種類には幾つかあるようですが、InnoDBとMYISAMとBDB--->この3つのそれぞれの特徴を概略で結構ですので教えていただけませんでしょうか。 宜しくお願い致します。

  • MySQL
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

参考サイトを紹介します。 ストレージエンジンはその3つ以外も対応されている ようです。 とりあえず、MyISAMは速いけどトランザクションが 使えない・・・というくらいの認識でよいでしょう

参考URL:
http://itpro.nikkeibp.co.jp/article/COLUMN/20050922/221608/?ST=itpro_print
ahirusanmm
質問者

お礼

参考サイトが役に立ちました。 どうもありがとうございました

関連するQ&A

  • MyIsamからInnoDBに変えたい

    phpmyadminでテーブルのエンジンをMyIsamからInnoDBに変えたいのですがどうすればよいでしょうか?

    • ベストアンサー
    • MySQL
  • MyISAM から InnoDBに変更

    プログラム初心者です phpとmysqliの手続き型を使っています 簡単な掲示板を作りました MyISAM から InnoDBに変更したいです phpadminから InnoDBにテーブルは変更できました InnoDBを使うときのsqlはMyISAM で使っていたsqlをそのまま使っていいでしょうか?(特に変更するところはないでしょうか?) よろしくお願いします

    • ベストアンサー
    • MySQL
  • MySQLのInnoDBテーブルについて

    MySQLのバージョンは4.1.13-ntです。 元々MyISAMテーブルを使用してたんですが、トランザクション機能を使いたいということでInnoDBテーブルに変えたところ、検索に凄く時間がかかるようになりました。データ件数は二百万件ぐらいです。MyISAMテーブル の時は数秒でかえってきたのが、InnoDBテーブルでは何分という結果になりました。 InnoDBは早いと聞いたのですが、データが大量になると遅くなるのでしょうか?ご教授お願い致します。

  • MyISAMとInnoDBの発音

    MyISAMとInnoDBはそれぞれ何と発音するのでしょうか? 参考URLもあれば教えてください。

  • phpMyAdminでのInnoDB設定について

    phpMyAdminでのInnoDB設定について mysqlでInnoDBを使用するため、各テーブルの種別をInnoDBに設定しました。 しかし、phpMyAdminで、データーベースの構造を見ると テーブル |昇順|操作|レコード数| 種別 |照合順序|サイズ|オーバーヘッド hoge             |InnoDB| hoge2             |InnoDB| 2テーブル|  |合計|1,726 |MyISAM| というように、テーブルの種別はInnoDBとなっているのですが、 最後の行にある、各テーブルの合計値が表示されている場所には、 MyISAMと表示されています。 InnoDBを使用する上で、これは問題ないのでしょうか? 教えて頂ければ幸いです。 宜しくお願いします。

    • ベストアンサー
    • MySQL
  • InnoDBとMyISAMについて

    他にも似たような質問はありましたが、質問させてください。 PHP:4.4.4 MySQL:4.1.21 Apache:2.0.58 テーブルを4つ作成予定です。 ・テーブルA→INSERTが中心。SELECTもそこそこ頻繁。 ・テーブルB→INSERT,UPDATEが中心。SELECTもそこそこ頻繁。 ・テーブルC→SELECTがメインだが、UPDATE,INSERTもあり、テーブルDとの整合性が必要。 ・テーブルD→SELECTがメインだが、UPDATE,INSERTもあり、テーブルCとの整合性が必要。 テーブルCとテーブルDをInnoDB, テーブルAとテーブルBをMyISAMにしようと思っていますが、InnoDBは速度が遅いとも書いてあるので心配です。 またInnoDBは運用が面倒だと書いてあるサイトもありましたが、具体的にどう面倒なのかがわかりません。 MySQLのサイトを見る限り、特に面倒な事は無いように感じますが、MyISAMと違って運用面で気をつけることがあるのでしょうか。 教えてください。御願いします。

    • ベストアンサー
    • MySQL
  • XAMPPでテーブルをInnoDBにすることができません

    MySQLの初心者です。お世話になります。 XAMPPを使っています。 ストレージエンジンがInnoDBのテーブルをつくりたく create table tb (a varchar(10)) ENGINE=InnoDB; や alter table tb ENGINE=InnoDB; を試みていますが、MyISAMにしかなりません。 どなたか、解決法等教えていただけないでしょうか。

    • ベストアンサー
    • MySQL
  • phpMyadminでどうしてもinnoDBが有効になりません。

    phpMyadminでどうしてもinnoDBが有効になりません。 ローカル環境 phpMyAdmin - 2.11.4 MySQL クライアントのバージョン: 5.0.51a ストレートエンジンをMyISAMで開発を行っていましたが、 innoDBに変更することにしました。 色んなサイトを拝見しましたが、どうも有効になってくれません。 対処した項目を書きます。 (1) my.cnf内のskip-innodbをコメントアウト (2) 数回XAMPPのコントロールパネルからMySQLを再起動 (3) ログファイルib_logfileの確認 <無し>   (ログファイルが生まれていれば、xampp/mysql/data/ ← この中に生まれますよね?) (4) (3)のログファイルがあれば、それを削除しようと思いましたが見つかりませんので、   無視しました。このログファイルは、my.cnf内のinnodb_log_file_size = デフォルト値を   変更した場合、既に生まれているログファイルのサイズと異なっていらば、エラーとなるらしく、   まあ、一度もinnoDBにてテーブルを作成していないので、ログが生まれるはずもなく・・・    一応ケアーしてみました。 いかがでしょうか? これら以外に、innoDBがphpMyadminで有効になってくれない理由がありますでしょうか? かなりハマッてます・・・。お助け下さい。。

    • ベストアンサー
    • MySQL
  • TYPE=InnoDB

    InnoDBなどのテーブルの型がありますが、自分が使っているテーブルから型を知るにはどうしたらいいですか? ターミナル mysql> の状態で回答をお待ちしています。

    • ベストアンサー
    • MySQL
  • InnoDBのAuto Incrementsの問題

    今回、InnoDBとMyISAMの Auto Increments(以下AI)の挙動に対する 対処方法についての質問になります。 以前は5.1のMySQLを使用していましたが、 最近利用しているホスティング会社の方で変更があり、 MySQL5.6へのバージョンアップが行われ、 そこから発生している問題です。 例えば testtb ------------- id item ------------- 1 aaa 2 bbb 3 ccc ------------- というテーブルがあります。(InnoDB) idはプライマリーキーでAIが設定されています。 基本的にこのテーブルでは itemのアップデートくらいで、 レコードを削除するような動作は起こりません。 ところが管理者サイドのテストの際に 下記のように、でMAX(id)を抽出してそのレコードを削除し、 AIの値を削除したMAX(id)に変更するという動作が稀に発生します。 $sql = "SELECT max(id) FROM testtb "; $result = mysql_query($sql, $con); $maxid = mysql_result($result, 0); $sql = "DELETE FROM testtb WHERE id = '{$maxid}' "; mysql_query($sql, $con); $sql = "ALTER TABLE testtb AUTO_INCREMENT = {$maxid} "; mysql_query($sql, $con); 要するにテストで登録した最新idのレコードを削除し、 AI値も元に戻してテスト前の状態に復旧するという内容です。 以前のMySQLのバージョンでは これが問題なく動作していましたが、 MySQL5.6に変わってから InnoDBの場合には、 ALTER TABLE testtb AUTO_INCREMENT = {$maxid} このSQL文を実行しても結果が全く反映されません。 phpmyadminからも実行してみましたが 実行結果にエラーはでないのですが、 同様に結果は反映されず、AI値の変更が行われません。 少しググってみて、innodb_autoinc_lock_mode の設定が関係しているのではと思い見てみると innodb_autoinc_lock_mode = 1になっていました。 ちなみにこの値は共有DBのため、 ホスティング会社の方での固有の設定で 私の方で変更はできません。 上記の問題はMyISAMでは発生しませんので、 InnoDB固有の特徴によるものかと思います。 innodb_autoinc_lock_modeの設定変更なしで 上記を解消する方法はありますでしょうか? もうMyISAMで運用するくらいしか方法が見つかりません。 それからこれに関連する内容で もう一つ質問があります。 これはphpmyadminに関する質問なのですが、 以前ですと、テーブルを選んで 上メニューの「操作」という箇所から AIの値が確認できて変更もできたかと思うのですが 現在はAIの値を操作する箇所が全く見当たりません。 確認のためにSHOW TABLE STATUSを実行する以外に 確認・変更のできる場所はありませんでしょうか? ちなみにphpmyadminのバージョンは4.0.0です。 よろしくお願いいたします。