を読んで、memcached でキャッシュ& 複数の MySQL をアプリのロジックで分散化というのは、もうすっかりスケーラブルなウェブアプリの作り方として常套手段になったと思いました。 2004 年 4 月の MySQL カンファレンスでの Brad Fitzpatrick の発表 Inside LiveJournal's Backend (PDF)から約 3 年半。Mixi やはてなのようなエッジな企業はだいぶ前からこの構成を採用してますが、対法人のビジネス...
こんにちは。mixi開発部のyouheiです。 今回は先日8月4日にリリースした「エコー」について書きたいと思います。 ■エコーとは まずはエコーとはどういう機能かのご紹介ですが、プロモーションページがございますのでそちらをご覧いただければ幸いでございます。 http://mixi.jp/guide_echo.pl いくつか抜粋しますと、 あなたの“今”を一言にしてみませんか?誰かに伝えたいこと、ひ...
こんにちは。ガルーン開発グループの米川です。 皆さんは普段、MySQL でどのストレージエンジンを使っていますか? ご存知の通り MySQL は、多様なストレージエンジンを用途に応じて使い分けることができます。 トランザクションが使いたければ InnoDB、Fulltext-Search を使うためには MyISAM など、特徴的なストレージエンジンが標準で搭載されています。 今回は、MySQL 5.1 で搭載され...
鴨志田さんに教えていただいたのですが、MySQL のクエリは数値をクォートしない方が高速になるらしいです。たとえば以下の例では、160万件の整数から4の倍数を数えていますが、数値をクォートしないほうが約50%も高速になっています。
こんにちは。ガルーン開発グループの米川です。 9 月 11 日 ~ 12 日に、日本科学未来館にて MySQL Users Conference Japan 2007 が開催されました。 私は 12 日に「サイボウズの MySQL に対する取り組み」というタイトルで、 MySQL のスケールアウトと全文検索エンジンの導入について講演をさせていただきました。 今回は、その講演内容と資料を公開いたします。 □PDF 版 ダウンロード : MySQL ...
こんにちは。ガルーン開発グループの米川です。 4/14 ~ 4/17 に、サンタクララで開催された MySQL Conference & Expo に参加してきました。 今回の記事では、その中で聞いた "BLOB Streaming Engine" というものについてご紹介します。 MySQL と BLOB データ Web アプリケーションを開発していると、BLOB データ ( ※注 1 ) を扱う場面がよくあると思います。 一般的に BLOB データはデータサイズが大...
勤怠管理に求める機能は何だろうか。それは出社時間と退社時間が記録できることだ。それ以外の機能はいらない。もし色々なリンクがあって、複雑になってしまったら入力に手間取っているうちに時間が過ぎてしまうかも知れない。 入力フォーム シンプル・イズ・ザ・ベストを地でいく勤怠管理システムがこれだ。 今回紹介するフリーウェアはkumquat、Webベースの勤怠管理シ...
現在、Pathtraq のサーバを、オフィス内のサーバルームに設置されたマシンからデータセンタ内の新サーバへ移行する作業を行っています。その際に問題となるのは、ダウンタイムを最小にしつつ、100GB 弱ある MySQL のデータをいかに移動させるか、という点になります。答えは言うまでもなく差分転送なのですが、rsync は双方向の接続が必須だったり、差分情報をキャッシュする...
サイボウズ・ラボの畑と申します。 こちらのブログで次世代のサイボウズ Office の開発日記を書くことになりました。サイボウズ・ラボでは、そんなこともやってます。 現在のサイボウズ Office のバージョンが7なので、ここで言う次世代に相当するものが8になるのか9になるのかは、今のところ未定です。次世代とは大げさな言い方かもしれませんが、次期 or 次々期メジャー...
データベースをオンデマンドでコピーするモジュール DBIx::Replicate を書いて、CodeRepos にアップロードしました。こんな感じで使います。 use DBIx::Replicate qw/dbix_replicate/; # 20才以下の人だけを young_table にコピー (1000行毎, 最大負荷 0.5) dbix_replicate({ src_conn => $dbh, src_table => 'all_people', dst_conn => $dbh, dest_table => 'young_people', primary_keys => [ qw/id/ ], columns => [ qw/id name age/ ], block => 1000, load => 0.5, ex...