understanding, mysql の検索結果:

Understanding MySQL Internalsを読む(12)

連載記事一覧は*こちら*にあります。http://mirz.jpでまとめて読むこともできます(オススメ)。ストレージエンジンインタフェースが終わりといいつつまだあった。handlerton構造体について。 handlerton構造体 ストレージエンジンを独自に実装してMySQLに組み込みたい場合、handlerクラスを継承したクラスを実装すればいいのですが、それだけでは不十分です。その新しいストレージエンジンをMySQL本体側に教えてあげる必要があります。handlerton…

Understanding MySQL Internalsを読む(11)

連載記事一覧は*こちら*にあります。http://mirz.jpでまとめて読むこともできます(オススメ)。久々の連載更新。ストレージエンジンインタフェースがこれでやっと終わり。まだあといくつかやっておきたいネタがある。 handlerクラスのメソッド(続き) メソッド定義 メソッドの説明 virtual int disable_indexes(uint mode) インデックスを一時的に無効化する。DISABLE KEYSコマンドが発行された時に呼ばれる。テーブルロックを伴う…

Understanding MySQL Internalsを読む(10)

連載記事一覧は*こちら*にあります。http://mirz.jpでまとめて読むこともできます(オススメ)。ストレージエンジンインタフェースの続き。忙しくなってきたのでビルド待ちの時間にコツコツ書いていたものをUP。 handlerクラスのメソッド(続き) メソッド定義 メソッドの説明 virtual int rnd_same(byte *buf, uint inx) 引数inxが0以上の場合、inxをキー番号として現在のレコードを読み取り引数bufのバッファに格納する。成功し…

Understanding MySQL Internalsを読む(9)

連載記事一覧は*こちら*にあります。http://mirz.jpでまとめて読むこともできます(オススメ)。今回はストレージエンジンインタフェースについて。かなりボリュームがあります。 handlerクラス ストレージエンジンのインタフェースはhandler抽象クラスによって定義されています。このhandlerクラスはテーブルのopenやclose、テーブルの順次走査、インデックスを利用したレコードの検索、レコードのソート処理、レコードの削除など、基本的な操作を行うためのメソッ…

Understanding MySQL Internalsを読む(8)

連載記事一覧は*こちら*にあります。http://mirz.jpでまとめて読むこともできます(オススメ)。 プリプロセッサマクロ MySQLのソースコードはC言語のプリプロセッサマクロを多用しています。以下はMySQLで良く利用されているプリプロセッサマクロです。 マクロ 定義ファイル 説明 sint2korr(A) include/global.h 引数Aを下位バイトから順に処理して符号付きの2バイト整数として返す。リトルエンディアンを採用しているアーキテクチャではこのマク…

Understanding MySQL Internalsを読む(7)

連載記事一覧は*こちら*にあります。 Core API一覧 メモリ割当て、文字列操作、ファイル管理などの処理はいくつものグループの内部APIによって行われています。ポータビリティを確保するため、MySQLのコードはCのライブラリの呼出を非常に控えめにしており、またC++のライブラリについてはまったく使用していません。その代わりに、MySQLでは多くのUtility系のAPIを用意しています。それらすべてを説明することはできませんが、代表的なものをいくつかここで触れたいと思いま…

Understanding MySQL Internalsを読む(6)

…事 [MySQL] Understanding MySQL Internalsを読む(1) [MySQL] Understanding MySQL Internalsを読む(2) [MySQL] Understanding MySQL Internalsを読む(3) [MySQL] Understanding MySQL Internalsを読む(4) [MySQL] Understanding MySQL Internalsを読む(5) Fieldクラス Fieldクラスは…

Understanding MySQL Internalsを読む(5)

…事 [MySQL] Understanding MySQL Internalsを読む(1) [MySQL] Understanding MySQL Internalsを読む(2) [MySQL] Understanding MySQL Internalsを読む(3) [MySQL] Understanding MySQL Internalsを読む(4) NET構造体 NET構造体はMySQLのclient/serverプロトコルで良く使われる構造体らしいです。あまりMySQL…

Understanding MySQL Internalsを読む(4)

…事 [MySQL] Understanding MySQL Internalsを読む(1) [MySQL] Understanding MySQL Internalsを読む(2) [MySQL] Understanding MySQL Internalsを読む(3) THDクラス MySQLのCoreなクラスのひとつ、THDについて。THDクラスはMySQLの上位層(データベース管理レベルのこと、ストレージエンジンの上)で動作する多くの関数の第一引数に指定されている超重要なク…

Understanding MySQL Internalsを読む(3)

…事 [MySQL] Understanding MySQL Internalsを読む(2) gdbデバッグするときのお薦めbreakpoint個所 P.35の表より。これでgdbデバッグ効率UP〜。 操作対象 お薦めbreakpoint個所 見ると幸せになれるかもしれない変数 SELECT文を実行 mysql_select() *thd, thd->query, *tables, *join INSERT文を実行 mysql_insert() *thd, thd->query…

Understanding MySQL Internalsを読む(2)

…事 [MySQL] Understanding MySQL Internalsを読む(1) Status Reporting Module システム変数、ステータス変数、テーブル情報、レプリケーションの状態、テーブルキャッシュ等を報告する。SHOW系コマンドの処理。ほとんどのコードはsql/sql_show.ccに書かれている。 sql/sql_show.cc: mysqld_list_process() sql/sql_show.cc: mysqld_show() sql/…

Understanding MySQL Internalsを読む

『Understanding MySQL Internals』なるMySQLソースコード解説本が発売されました! たぶん現存する書籍(洋書含む)の中ではもっともコード寄りの本だろうと思います。著者曰く『Understanding the Linux Kernel』とか『Linux Device Drivers』のMySQL版となることをコンセプトに執筆した、とのことです。Understanding MySQL Internals: Discovering and Improv…