タグ

InnoDBに関するKenji_sのブックマーク (6)

  • コマンド一つでMysqlを速くする - Qiita

    稼働中のシステムであっても下記のコマンドを実行するだけで再起動等必要はないので、非常にお手軽に出来る。 デフォルトではinnodb_flush_log_at_trx_commit = 1 になっているはず。 1に設定するとトランザクション単位でログを出力するが 2 を指定すると1秒間に1回ログファイルに出力するようになる。 そのため、マスターDBが落ちて別スレーブに切り替わる仕組みを導入していても1秒の間に発生したトランザクションは完全にもとに戻す事が出来ない。 マスターDBの死 = サービス停止 みたいに冗長構成を持たせていないのならばこの設定にしても問題はなさそう。 mysqlslapでベンチマークを測ってみた。 テストの内容としては20クライアントから計10万回のINSERT文を実行するという内容で 結果として約3倍近く速くなっている。 innodb_flush_log_at_trx

    コマンド一つでMysqlを速くする - Qiita
  • FuelPHPでInnoDBの全文検索を利用してみる

    最低限必要なのはMySQLのバージョンです。 InnoDBのFULLTEXTインデックスはMySQL 5.6.4からのみ利用できます。1 また、InnoDBのFULLTEXTは空白区切りの単語検索しか対応していない2ため、 Mecabを使用して分かち書きして保存・検索します。 MySQL, PHPはインストール済みの前提で話を進めます。 また、Fuelの基的な知識があり、セットアップは済んでいるものとします。 MeCabは次の環境構築にてインストールしていきます。 環境構築 phpでmecabを使う手順 http://qiita.com/Keech/items/3b51a60c89b9e803b256 こちらの記事を参考に環境構築をしたのですが、自分の環境ではコピー&ペーストでは動かない箇所があったのでそれを込みでインストールコマンド全てを貼り付けます。 sudoは省略しているため、コマ

  • fuelphpのマイグレーションでvarchar型、text型にインデックスを付ける - という話

    fuelphpのマイグレーション機能で苦戦したのでメモ。 環境 fuelphp : 1.7.1 PHP : 5.3.3 mysql : 5.5.34 charsetをutf8mb4にしたため普通に \DBUtil::create_index('table', 'text_data'); とかやると Index column size too large. The maximum column size is 767 bytes.が出て怒られる。 やったこと my.cnfに innodb_file_format = Barracuda innodb_file_per_table = 1 innodb_large_prefixを追加。 キープレフィックスの制限を大きくする(3072バイトまで) ここまでは普通の対応なのだが、ここから荒業。 DBUtilクラスのcreate_tableメソッドに

    fuelphpのマイグレーションでvarchar型、text型にインデックスを付ける - という話
  • MySQLでMyISAMからInnoDBに乗り換える際に知らないとハマる、怖い話 - Y-Ken Studio

    photo by byte MySQLといえば、巷ではInnoDBばかり注目され、MyISAMの地下アイドル化がにわかに語られる今日この頃、皆様いかがお過ごしでしょうか。 まあカジュアルにストレージエンジンを変換するだけで済むなら、簡単なのです。 -- legacy_my_tableをInnoDBストレージエンジンに変換する ALTER TABLE legacy_my_table ENGINE=InnoDB; よし終わった!さあランチタイムだ! ・・・と片付けてしてしまうと、悲劇が起こるかもしれません。(>o<;) それでは日、MyISAMからInnoDBへ移行するなら知っておきたい意外な落とし穴とTipsを紹介します。 AUTO INCREMENTの挙動が違う落とし穴 以下に該当するクエリを利用している場合には、注意が必要です。私はハマりました。 INSERT IGNORE INTO

    MySQLでMyISAMからInnoDBに乗り換える際に知らないとハマる、怖い話 - Y-Ken Studio
  • InnoDBのファイルサイズ管理

    最近、InnoDBのデータ領域(テーブルスペース)が成長してしまって元に戻すことが出来ない場合の対処についてよく質問されるので、今日はテーブルスペースが成長することへの対策について説明しよう。(ここのところMySQLネタが続いているが、Planet MySQL語版を意識しているわけではないのであしからず!!<<ホントかよ?!>俺) InnoDBのテーブルスペースが成長してしまうのは、ズバリ自動拡張しているからである。テーブルスペースに対して何もオプションを指定しないと、デフォルトでは次のような設定と同じテーブルスペースが作成される。 [mysqld] innodb_data_file_path=ibdata1:10M:autoextend サイズは10MBしかないが、自動拡張するのである。自動拡張してしまうと何が問題なのかというと、データが増えた場合にファイルシステムの空き領域を使い切

    InnoDBのファイルサイズ管理
  • 大人のためのInnoDBテーブルとの正しい付き合い方。

    InnoDB関連でよくある質問のひとつに「テーブルのメンテナンスは何をすればいいんですか?」というものがある。InnoDBMySQL 5.5でデフォルトストレージエンジンとなるため、InnoDBのテーブルメンテナンス計画を立ようと思う機会も増えることだろう。そこで、今日はInnoDBのテーブルメンテナンスの各種方法となぜそうしなければいけないかという理由を解説しようと思う。 ANALYZE TABLEテーブルメンテナンスの代名詞といえば、インデックス統計情報の更新ではなかろうか。運用を続けるうちに、知らず知らずインデックス統計情報が狂ってしまい、思うような性能が出ない。RDBMSにはそのような問題がつきものであるが、InnoDBの場合、ANALYZE TABLEは不要である。なぜなら、InnoDBが自発的に統計情報を更新するからだ。InnoDBは以下の条件に適合すると、ANALYZE T

    大人のためのInnoDBテーブルとの正しい付き合い方。
  • 1