タグ

innodbに関するttakezawaのブックマーク (8)

  • MySQLのロックについて

    MySQLのロックについて JPOUG> SET EVENTS 20140907 2014/09/07 平塚 貞夫 1 Revision 2 自己紹介 • DBエンジニアをやっています。専門はOracle DatabaseMySQL。 • オープンソースソフトウェアの導入支援をしています。 • 仕事の割合はOracleMySQL:PostgreSQL=1:2:7くらいです。 • Twitter:@sh2nd • はてな:sh2 • • 写真は実家で飼っているミニチュアダックスのオス、アトムです。 2 日のお題 3 想定外のデッドロック • MySQLのInnoDBストレージエンジンに対して、2つのトランザクション を以下の順番で実行するとデッドロックが発生します。 • このデッドロックの発生メカニズムを理解するために、InnoDBのロック アーキテクチャについて確認していきます。 4

  • MySQL/MariaDBとTransactdのInnoDBロック制御詳細 その1 - BizStationブログ

    今回から数回にわたり、TransactdのオペレーションとInnoDBにおけるロックについて解説します。 ロックについてはあまり良くわからなくてもとりあえずそれなりに動くアプリケーションは作れてしまいます。ですが、マルチユーザー環境でミッションクリティカルなアプリケーションを書くには、ロックの理解が不可欠です。ロックをうまく使って、矛盾や間違いのない読み書きをしつつ同時実行性も高いアプリケーションにしましょう。 その1では、Transactdを実装する上でMySQLのソースやドキュメントから得た知見を基に、InnoDBのロックの種類と分離レベルに応じてそれをどのように使うかをまとめてみます。 Index MySQLのトランザクション関連用語 MySQLのREPEATABLE-READ InnoDBのロック 行ロック (row-level locking) GAPロック GAPロック単体 ネ

    MySQL/MariaDBとTransactdのInnoDBロック制御詳細 その1 - BizStationブログ
  • MySQL Innodb テーブルスペース利用率をさくっと算出する | QK

    普段はあまり気にすることはないのですが、運用してから数ヶ月、もしくは数年たった時に「あれ?テーブルスペース内にどれくらいのデータは入っているのだろう?」とか思ったことはありませんか?たとえばこの心配って、MySQLの設定でテーブルスペースを固定サイズに設定した場合なんかに戸惑うのではないかと思います。そうです、テーブルスペースの利用率を算出するコマンドは、MySQLにはないのです (T_T) たぶんなのですが、MySQL InnoDBのテーブルスペースのデフォルトはオートエクステントです。設定を確認すると、こんな感じになっているのではないかと思います。 ・オートエクステントの設定 show global variables like '%innodb_data_file_path%'; +-----------------------+------------------------+ |

  • XtraDB / InnoDB internals in drawing

    All of Percona’s open-source software products, in one place, to download as much or as little as you need.

    XtraDB / InnoDB internals in drawing
  • 基本に戻ってInnoDBの話をします

    14. mysql> SHOW CREATE TABLE t1G *************************** 1. row *************************** Table: t1 Create Table: CREATE TABLE `t1` ( `num` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `val` varchar(32) DEFAULT NULL, UNIQUE KEY `num` (`num`), KEY `val` (`val`) ) ENGINE=InnoDB AUTO_INCREMENT=100000001 DEFAULT CHARSET=utf8mb4 1 row in set (0.03 sec) 【 innodb_buffer_pool_size= 4G 】 $ time bin/m

    基本に戻ってInnoDBの話をします
  • 大人のためのInnoDBテーブルとの正しい付き合い方。

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

    大人のためのInnoDBテーブルとの正しい付き合い方。
    ttakezawa
    ttakezawa 2013/09/16
    『InnoDBテーブルの監視項目についても述べておこう』
  • MySQL ibdata1が肥大化する理由(記事の意訳) | Ore no homepage

    毎日暑い…。というか蒸し暑い。何年か前にベトナムとカンボジアをバックパッカー旅行したときを思い出す。日の気候が亜熱帯ってか東南アジアっぽくなってきたような…昔はこんな頻繁にゲラリ豪雨とか降らなかったよねー?温暖化ってやつ?日の植生とか変わるんじゃねーのかな…。 えーと、おれがよく見ている技術ブログの一つにPercona社のMySQL Performance Blogがある。そのブログに先日、「Why is the ibdata1 file continuously growing in MySQL?」という記事が投稿された。内容はInnoDBのibdata1の肥大化とその解消方法に関するもの。ibdata1の肥大化を解消する手段は、ダンプをとってDBを作り直してあげないと治らないということは多くのInnoDBユーザが知っていることだと思うけど、おれもInnoDBを触り始めたころは、「気

  • 【MySQL】AUTO_INCREMENTの値が戻る@InnoDBエンジンのテーブル at softelメモ

    MySQLサーバー再起動の場合 まずこれ。 サーバーが再起動すると、auto_incrementの値が select max(id)+1 になってしまう。 InnoDB は、ai_col を名づけた AUTO_INCREMENT カラムを含むテーブル T に自動インクリメント カウンタを初期化する為に、次のアルゴリズムを利用します:サーバの起動の後で、テーブル T への最初の挿入をする為に、InnoDB はこのステートメントと同等な物を実行します: SELECT MAX(ai_col) FROM T FOR UPDATE; (中略) InnoDB はサーバが起動している限り、メモリ内の自動インクリメント カウンタを利用します。サーバが停止し再起動した時、先ほど説明があったように、InnoDB は、テーブルへの最初の INSERT に対する各テーブルのカウンタを再初期化します。 http:/

    【MySQL】AUTO_INCREMENTの値が戻る@InnoDBエンジンのテーブル at softelメモ
    ttakezawa
    ttakezawa 2013/08/02
    AUTO_INCREMENT
  • 1