タグ

innodbに関するrochefortのブックマーク (11)

  • db tech showcase Tokyo 2017 - MySQL・PostgreSQLだけで作る高速でリッチな全文検索システム #dbts2017 - 2017-09-08 - ククログ

    株式会社クリアコード > ククログ > db tech showcase Tokyo 2017 - MySQL・PostgreSQLだけで作る高速でリッチな全文検索システム #dbts2017 この発表のためにmroonga_query_expand()を実装した須藤です。db tech showcase Tokyo 2017で「MySQL・PostgreSQLだけで作る高速でリッチな全文検索システム」という話をしました。一昔前の全文検索システムはそこそこ速く全文検索してキーワードをハイライト表示できれば普通でしたが、最近の全文検索システムはそれだけだと機能不足で、オートコンプリートやクエリー展開や関連エントリー表示機能などがあって普通というくらいにユーザーの要求レベルがあがっています。これは、GoogleAmazonなど便利な検索サービスに慣れたユーザーが増えたためです。そんな時代の変

    db tech showcase Tokyo 2017 - MySQL・PostgreSQLだけで作る高速でリッチな全文検索システム #dbts2017 - 2017-09-08 - ククログ
  • innodb_file_per_tableが有効な時にディスク容量を開放するには | Yakst

    MySQL Performance Blogの翻訳。innodb_file_per_tableが有効になっている時、データを削除してもデータファイルのサイズは小さくならない。これを小さくする方法とは。 September 25, 2013 By Nilnandan Joshi innodb_file_per_tableがOFFの時には、全てのデータはibdataファイルに保存される。テーブルをドロップしたりデータを消したりしたとき、使用されていないディスク領域を解放するには、ダンプしてからリストアするしかない。 innodb_file_per_tableがONの時には、各テーブルのデータとインデックスはそれぞれの表領域ファイルに保存される。しかし、共有の表領域であるibdata1も容量が増えてしまう。これがなぜ起きて、どうやって解決するかはこちらの記事(日語訳)を見て欲しい。 上に挙げた

    innodb_file_per_tableが有効な時にディスク容量を開放するには | Yakst
    rochefort
    rochefort 2017/03/22
    innodb_file_per_table
  • 知って得するInnoDBセカンダリインデックス活用術!

    InnoDBはクラスタインデックスという構造になっている。今日はクラスタインデックスがどういうことかということを、皆さんに理解して頂きたい。もっとも理解して頂きたいポイントは「セカンダリインデックスのリーフノードには主キーの値が含まれている」ということだ。 主キーの構造InnoDBの主キーは次の図のように「データが主キーのリーフノードに含まれる」という構造になっている。このような構造をクラスタインデックスという。 このような構造になっていることには利点と欠点があるが、大きな利点は主キーの値で検索をすると非常に高速だということだ。主キーのリーフノードにたどり着いたときには、既にデータのフェッチも完了している。データとインデックスが別々に格納されているタイプのストレージエンジンでは、インデックスからデータの位置を読み取って、その後データファイルからデータをフェッチする。このように二段階の操作が

    知って得するInnoDBセカンダリインデックス活用術!
  • お手軽InnoDBウォームアップを実現するMySQL::Warmerの話をGotanda.pm #2でしてきました | おそらくはそれさえも平凡な日々

    発表資料 Gotanda.pm #2でMySQL::Warmerというモジュールの紹介をしたのですが、それをCPANizeしたのでエントリを書いています。 % cpanm MySQL::Warmer とすると、mysql-warmupというコマンドがインストールされ以下のようなコマンドを打つとウォームアップクエリがダラっと発行されます。--dry-runもあり、その場合、発行されるクエリが標準出力されます。 % mysql-warmup mydatabase -h db.example.com -u dbuser -p サービス投入前のDBのデータをメモリに乗っけてやるのに有用でしょう。 ウォームアップ戦略はkazuhoさんのMySQL のウォームアップ (InnoDB編)に基づいていますが一部適当です。突っ込みどころがあれば指摘いただければと思います。 ISUCONでも再起動かかった直後

    お手軽InnoDBウォームアップを実現するMySQL::Warmerの話をGotanda.pm #2でしてきました | おそらくはそれさえも平凡な日々
  • Kazuho@Cybozu Labs: MySQL のウォームアップ (InnoDB編)

    « DBIx::Printf と LIKE 式 | メイン | メッセージキュー事始め in Perl - コマンドラインクライアントを作ってみた » 2007年10月11日 MySQL のウォームアップ (InnoDB編) サーバの起動直後はデータがメモリ上にないためデータベースの応答速度が遅い、というのは良く知られた話かと思います。MySQL の場合、使っているエンジンが MyISAM であれば、各データファイルをあらかじめ cat ... > /dev/null するなりしてバッファキャッシュに載せておけばいいのですが、InnoDB は独自のキャッシュを持っているのでそういうわけにもいかないように思います。 具体的には、パフォーマンスを最大限発揮するためには OS のキャッシュにではなく、InnoDB のバッファプールにデータをロードすべきであるという点。それに、たとえ OS のキャ

  • InnoDBで行ロック/テーブルロックになる条件を調べた #mysqlcasual Advent Calendar 2013 - あおうさ@日記

    はじめに この記事は、MySQL Casual Advent Calendar 2013 7日目の記事です。 〜 Casual に記事を書けばええんやでヽ(´ー`)ノ 〜 私がMySQLで えっ?! っと思った下記エントリーの挙動が何故そうなってしまうのかを書きたいと思います。 InnoDBで行ロック/テーブルロックになる条件 MyISAM はテーブルロック、InnoDB は行ロックが掛かるというのは有名な話じゃないかと。 ただ、最近知ったのですが、InnoDB だとしても必ずしも行ロックになるわけではなく、テーブルロックになる場合もあるようですね。 ... InnoDB であってもユニーク制約 or インデックスが張られているカラムで検索した場合以外はテーブルロックになってしまうようです。これは注意しないと思わぬところでテーブルロックになってしまって大変なことになりそう! http://

    InnoDBで行ロック/テーブルロックになる条件を調べた #mysqlcasual Advent Calendar 2013 - あおうさ@日記
  • MyISAMとInnoDBのどちらを使うべきか

    Twitterで話題になってたので簡単にまとめました。 ●MyISAMにしか無い機能を使いたい場合はMyISAMを使うしかない ・全文検索 (TritonnやSphinx) ・GIS ●InnoDBの利点(MyISAMの欠点) ▲障害対応系 ・クラッシュしても再起動するだけでリカバリができる ・クラッシュリカバリにかかる時間はテーブルサイズに比例するようなことはなく、コミット済みのデータは修復できる (巨大なMyISAMテーブルのREPAIRには数日単位で時間がかかることがある) ・オンラインバックアップができる ・INSERTやLOAD DATAなどを実行している途中でCtrl+Cでその更新系SQL文を止めても、テーブルは壊れないし、中途半端な状態で更新されることも無いし、スレーブが止まることも無い ▲性能系 ・行レベルロックなので並列性が高い(MyISAMはテーブルロック)。またSEL

  • InnoDB純正の全文検索エンジンInnoDB FTS

    2011-07-28 InnoDB純正の全文検索エンジンInnoDB FTS つい先日、MySQL-5.6.3-labs版がリリースがされました。この中にはInnoDBで動作する全文検索エンジン"InnoDB FTS"が含まれています。これまでは、MySQLとInnoDBの組み合わせで全文検索を行うためにはサードパーティの製品(mroonga 等..)が必要でしたが、これでズバっと選択肢が広がることになります。しかもInnoDBの開発チームが自ら開発した"純正の"エンジンということですから、これは大きな期待が持てます。 いったいどのような製品に仕上がっているのか、ざっくり記事やソースを読んで得た感触を述べてみたいと思います。 written by daijiro.mori どんなエンジンか? エンジンの概要については、 Overview and Getting Started with I

    InnoDB純正の全文検索エンジンInnoDB FTS
  • これを知っておかないと、MySQLサーバの再起動でDBデータの不整合が発生するかもしれません! - よかろうもん!

    Railsに限らず、MySQL(Innodb)を利用したサービスを開発/運用しているなら、これから解説する内容を知っておかないと、予期しないデータ不整合を発生させてしまうかもしれません。 データ不整合が発生してしまったら、来あるべき状態に戻すのはかなり難易度が高いため、開発/運用をしているエンジニアは、データ不整合を起こさないようにすべきです。 では、どのようなことをすると、データ不整合をいとも簡単に発生させることができるかを解説します。 まずは、何が原因でデータ不整合が発生するかの簡単なモデルを紹介します。 以下のようなUserオブジェクトをcreateししたとします。 User.create(:name => "interu, :age => "27") すると、Userテーブルにデータが追加されます。 ■ Userテーブル id name age 1 user_a 30 2 use

    これを知っておかないと、MySQLサーバの再起動でDBデータの不整合が発生するかもしれません! - よかろうもん!
    rochefort
    rochefort 2010/08/18
    おお、これは知らんかった。物理削除&リファレンスを想定する場合は、危ないと。innodbの仕様が特殊だからアプリのバグで不幸になる可能性があるってことか。ようやく理解。 // Railsの場合は必ず:dependent => :destroyなど
  • InnoDB Pluginことはじめ。快適ストレージエンジン生活はじまる!

    MySQL 5.1.38からMySQL体にInnoDB Pluginバンドルされている。一部の先駆的なユーザー以外に、「InnoDB使ってますよ!」もしくは「検証してるよ!」という話をあまり聞かない。そもそもであるが、InnoDB Pluginってなんぞ?!という人が多いんではないかと思うのだが、実際はどうなのだろう?現在はRC版(リリース候補版)という位置づけのInnoDB Pluginであるが、一部影響度の高いバグが残っていたりしてGA版ほどの安定性は求められないものの、ほとんど実用に耐えうる品質になっているといえる。そんなわけで、今日は改めてInnoDB Pluginの使い方・使いどころについて説明するので、ぜひ皆さんの手でInnoDB Pluginを評価してみて頂きたい。 なお、以下の解説は現在の最新バージョンである、InnoDB Plugin 1.0.6を前提にしているので、将

    InnoDB Pluginことはじめ。快適ストレージエンジン生活はじまる!
  • Planet MySQL :: Planet MySQL - Archives - MyISAMとInnoDBのどちらを使うべきか

    Twitterで話題になってたので簡単にまとめました。 ●MyISAMにしか無い機能を使いたい場合はMyISAMを使うしかない ・全文検索 (TritonnやSphinx) ・GIS ●InnoDBの利点(MyISAMの欠点) ▲障害対応系 ・クラッシュしても再起動するだけでリカバリができる ・クラッシュリカバリにかかる時間はテーブルサイズに比例するようなことはなく、コミット済みのデータは修復できる (巨大なMyISAMテーブルのREPAIRには数日単位で時間がかかることがある) ・オンラインバックアップができる ・INSERTやLOAD DATAなどを実行している途中でCtrl+Cでその更新系SQL文を止めても、テーブルは壊れないし、中途半端な状態で更新されることも無いし、スレーブが止まることも無い ▲性能系 ・行レベルロックなので並列性が高い(MyISAMはテーブルロック)。またSEL

  • 1