MySQL
どのバージョンで自作ストレージエンジンの練習をするか悩んでいるわけですが、kdiff3あたりで3つのソースを並べて見てみたりしてるんですが、5.1はプラガブルストレージエンジンになり明らかに一線を画してるのは予想通りではあるんですが、4.1と5.0でも結…
MySQLのソースやLinuxカーネルのソースを眺めるとしばしば出てくる、 if (unlikely(a == b)){ .... }みたいな構文ですが、これの解説。このunlikelyはマクロ関数で、引数として渡された条件がほとんどの場合に偽になることをコンパイラに教えるものです。コ…
環境 FreeBSD-6.2 準備 MySQLソースコードの取得 $ fetch "http://mirror.mysql-partners-jp.biz/Downloads/MySQL-5.0/mysql-5.0.45.tar.gz"; $ tar xzf fetch.out; MySQLコンパイル $ cd mysql-5.0.45; $ CC=gcc CXX=gcc CFLAGS=-g CXXFLAGS=-g ./configure…
Tritonn(Senna)、チョーいいです http://qwik.jp/tritonn/ http://qwik.jp/senna/TritonnはMySQLに全文検索エンジンのSennaを組み込むためのパッチ(以下、MySQLバインディングパッチ)を開発する、Sennaのサブプロジェクトです。開発者mirこと池田さんのブ…
なかなか面白い結果が出たので備忘録。TBLテーブルに対し add index idx(COL0,COL1)としてある状況では、 SELECT A.* FROM TBL A WHERE A.COL0 = "hoge" AND A.COL1 IN ('A', 'B', 'C');よりも SELECT A.* FROM TBL A JOIN ( SELECT 'A' COL1 FROM DUAL UNIO…
目的 「書き込みするDBの可用性確保」を焦点に、 MySQL4.1以降で実装されているNDB Clusterについて調査・構築・動作テストした。 基本的にはGAになっているMySQL5.0をメインに調査したが、5.0のクラスタは オンメモリという致命的な制限があるため、現在は…
SHOW SLAVE STATUS 等でスレーブのステータスを見ると、なんらかの原因であるSQL文でエラーが発生していることが稀にあります。 データの整合性的にそのSQL文をスキップしても問題ないことがわかっている場合は下記のSQL文を発行することでスキップさせるこ…