Outputzおもすれー!! とりあえずFirefox add-onとEclpse Pluginは入れたけど、最近はTerminalでの作業がメインなのであまり増えない。 ならば、APIも公開されているので、作るしかあるまい。 API 活用例まとめ - Higepon’s blog - Mona OS and Mosh Outputz API を公開しました (higepon @ cybozu labs) ってことで、Objective-c初挑戦でTerminal.appで入力した文字数をOutputzに送るSIMBL Pluginを作ってみました。 インストール まずは、SIMBLが入っていないのなら、こちらからダウンロードしてインストールしてください。 SIMBLとは、cocoaアプリケーションに様々な機能を追加するプラグイン用機能拡張です。 今回作成したPluginもSIMBLのプラ
MySQL Lists: internals: Re: Const propagation within a non-const expression Kazuho at Work: Using O_DIRECT on Mac OS X Kazuho@Cybozu Labs: Tritonn (MySQL+Senna) の join を高速化 全文検索中に KILL CONNECTION を有効にするパッチ (Tritonn-dev 126) - Tritonn - OSDN Re: 全文検索中に KILL CONNECTION を有効にするパッチ (Tritonn-dev 128) - Tritonn - OSDN エスカレーションを部分的に抑止する演算子 (Senna-dev 1068) - senna - OSDN 壊れたマルチバイト文字列で検索すると無限ループ (Senna-dev
たとえば、以下のような url テーブルから CREATE TABLE url ( id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, url VARCHAR(255) NOT NULL, UNIQUE KEY url (url) );primary id を (存在しない場合は URL を追加しつつ) 検索する場合、 INSERT INTO url (url) VALUES ('http://example.com') ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id);とやって、あとは last_insert_id の値 (perl の場合は $dbh->{mysql_insertid}) を参照すればいい *1。テーブルルックアップも1回だしクエリの送受信も1回なので速い。ただ、MySQL
週に一度か二度、Bacteriaが管理するサイトは大規模なプロモーションをすることがある。 140万通ものメール広告でもってやるわけだけど、そのレスポンスが強烈に重い。 サーバが悲鳴を上げているのがわかる。 ちょっと重すぎるよこれどうなってんのってことで、MySQLのslow_queryで分析をはじめることにした。 すると一番最初に引っかかったのが下記の事例だった。 MySQLにクエリを投げる場合、Explainして最も見たくないのがUsing file sortの文字だ。 file sortは負荷がかかると、Using Temporaryまで出てき始める。 こうなるともうお手上げで、クエリは結果を表示するためにディスクアクセスを繰り返し、速度は低下の一途をたどることになる。 file sortが発生するときは、たいてい決まっているがorder byを使うときだろう。 そりゃそ
InnoDB は MVCC で遅そうだから読み込み主体の場合は MyISAM とか言うけど、そういう発想の人はそもそも MVCC 不要=複雑なクエリを書かない人なわけで、で、永続的なハッシュとしてしか MySQL を使わないようなケースでは、どのみちプロセス間通信がボトルネックになるので InnoDB でも MyISAM でもパフォーマンスは変わらないんじゃないかと思った。 以下は、250 万件のテーブルからランダムにプライマリキーを指定して読み込んだ場合のパフォーマンス (10万回)。 クエリ MyISAM InnoDB WHERE id=x 10.4秒 10.7秒 WHERE id>x LIMIT 10 19.8秒 18.1秒 環境は MySQL 5.1.28-rc。チューニングとしては、key_buffer_size, myisam_use_mmap, innodb_buffer_p
« C++ テンプレートを使って高速な高機能サーバを書く方法 | メイン | YAPC::Asia 2008 で Pathtraq について話してきました » 2008年05月01日 データベースの差分バックアップとウェブサービスのお引っ越し 現在、Pathtraq のサーバを、オフィス内のサーバルームに設置されたマシンからデータセンタ内の新サーバへ移行する作業を行っています。その際に問題となるのは、ダウンタイムを最小にしつつ、100GB 弱ある MySQL のデータをいかに移動させるか、という点になります。答えは言うまでもなく差分転送なのですが、rsync は双方向の接続が必須だったり、差分情報をキャッシュすることができなかったり、いろいろ融通が効かなそうです。だんだん調べるのも面倒になってきたので、自分のニーズに見合う、データベースファイル用の差分バックアッププログラムを書いてみました
« メッセージキュー事始め with Q4M | メイン | フレンド・タイムライン処理の原理と実践 » 2008年06月09日 MySQL のクエリ最適化における、もうひとつの検証方法 EXPLAIN を使用して MySQL の SQL を最適化するというのは、良く知られた手法だと思います。しかし、EXPLAIN の返す結果が、かならずしもアテになるわけではありません。たとえば、以下のような EXPLAIN を見て、このクエリが最適かどうか、判断ができるでしょうか。私には分かりません。 mysql> EXPLAIN SELECT message.id,message.user_id,message.body FROM message INNER JOIN mailbox ON message.id=mailbox.message_id WHERE mailbox.user_id=2 OR
« 開発しているウェブアプリケーションフレームワーク NanoA について話してきました | メイン | なぜサイボウズ・ラボで働くのか » 2008年11月27日 ウェブサービスの SSD 化について話してきました 本日 (11/27) 開催の Shibuya Perl Mongersテクニカルトーク#10 で、ウェブサービスの SSD 化について話しました。スライドを置いておきますので、開発しているウェブアプリケーションフレームワーク NanoA について話してきました とあわせてご覧いただければ幸いです。 末筆となりますが、Shibuya.pm の実行委員(?)の方々、ありがとうございました&おつかれさまです。 (まだ終わってないけど ^^;)
MySQL のチューニング関連のドキュメントを読んでいると「ORDER BY を避けろ」と書いてあるけど、できない (or したくない) 場合もあるわけで。そういう時はソート用の表と表示用の表を分割し自己結合することで、高速化できることもあります。適当な例ですが、 mysql> SHOW CREATE TABLE testt\G *************************** 1. row *************************** Table: testt Create Table: CREATE TABLE `testt` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `priority` int(10) unsigned NOT NULL, `data` varchar(255) NOT NULL, PRIMAR
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く