mysql

システムにlibaioをインストールせずにMySQL::Sandboxでmysql5.5を使う

先にlibaioを置いておく。(debian) mkdir libaio-dev cd libaio-dev apt-get source libaio-dev tar zxf libaio_0.3.107.orig.tar.gz gzip -d libaio_0.3.107-7.diff.gz cd libaio-0.3.107 patch -p1 < ../libaio_0.3.107-7.diff make prefix=$HOME/opt/liba…

Luaをタイムアウト付きで実行する

環境 Lua 5.1.4 LuaJIT 2.0.0-beta9 動機 MySQLのUDFの中でLuaを実行したい。 このとき、無限ループするようなコードを実行すると、killクエリを投げても止まらないスレッドになってしまい、mysqldをkill -9するしかなくなる。 そのため、無限ループしてても…

LuaJITのメモリアロケータを入れ替える(気をつけないとメモリリークする)

環境 Lua 5.1.4 LuaJIT 2.0.0-beta9 動機 MySQLのUDFの中でLuaを実行したい。 問題は2つ。 1コネクションにつきLuaインスタンスを1つ作るので、max_connectionsで設定した数だけLuaインスタンスが同時に立ち上がる可能性がある。 1つメモリを食いつぶすクエ…

on duplicate key update の変な使い方

例えば、こんなテーブルがあったとして、 CREATE TABLE hoge ( a INT NOT NULL AUTO_INCREMENT, b INT NOT NULL, PRIMARY KEY (a), UNIQUE KEY (b), ) こんなデータがすでに入ってるとき、 a b 1 10 2 20 3 30 4 40 : : UPDATE hoge SET b = 12 WHERE b = 10…

さくらインターネットでコマンドラインからmysqlを使う時の引数

さくらインターネットでコマンドラインからmysqlを使う時は、 % mysql -hmysql<num>.db.sakura.ne.jp -p<password>" mysql> connect <データベース名> mysql> use <データベース名> 参考 http://dev.mysql.com/doc/refman/4.1/ja/mysql.html</password></num>