MySQL

mysql_closeのなぞ

時間がかかる処理をするプログラムでmysqlの接続が必要なくなった時点でmysql_closeでMySQLの接続を明示的に閉じているのにSHOW PROCESSLISTをするとまだ接続が残ってしまっているのはなんでなんだぜプログラムはこんな感じ

myisampackでテーブル圧縮

MySQLのMyISAMテーブルの圧縮方法 myisampackコマンドでテーブルを圧縮 $ myisampack -v 圧縮するテーブル myisamchkコマンドでインデックスを再生性 $ myisamchk -rq --sort-index --analyze 圧縮したテーブル.MYI FLUSH TABLEでテーブルをフラッシュ FLUSH…

クエリの実行時間もそうだけど、接続数もね

作ったサイトの負荷が全然さがらなくて、slowログに乗っかってくるクエリがいくつかあったので、それをどうにかできないかとあれやこれややっていたで、ふと別のところで大量にPHP経由でMySQLへのアクセスが行なわれているところがあったので、そこをMySQLに…

ALTER TABLEの順番

検証データ 約8万件 方法1 SennaのFULLTEXTインデックスを貼ってから通常のインデックスを生成する(×5回) Sennaインデックス Query OK, 77373 rows affected (10 min 5.51 sec) 通常インデックス(×5回) Query OK, 77373 rows affected (9 min 48.32 sec) Qu…

SennaのインデックスがあるテーブルのUPDATEが重たい

Sennaのインデックスが貼ってあるテーブル(7万レコードくらい)に他のテーブルをJOINしつつUPDATEをかけたら 15000秒たっても終わらなかった・・・ orz... 仕方が無いのでCtrl+CでabortでCREATE TABLEして、データを突っ込んだ後にインデックスを貼る形に変え…

同じクエリなのに結果が違う

Sennaを入れたMySQLに同じクエリを投げてるのに投げるたびに取得される結果が違う・・・・ っていうかORDER BYしているカラムの問題?とりあえず件数は同じ、ソートの順番が違う・・・ う〜む・・・とりあえず結果のみ取得して同じものが取得されているかチ…

MySQL + Senna

MySQLでSennaを利用するようにしてみたFULLTEXT インデックスの構文が変わるFULLTEXT (`text`) だったのが↓にかわる Ngramのインデックス CREATE TABLE IF NOT EXISTS `foo` ( `id` int(11) NOT NULL auto_increment, `text` mediumtext NOT NULL, PRIMARY K…