KOF 2008 の発表資料 – naoyaのはてなダイアリー
はてな流大規模データ処理の発表資料を見てたら、データベースのパーティショニングを前提とした設計、というのが載っていて興味を引きました。
普通にテーブルが分かれている場合、JOINを使って、
mysql> select url from entry INNER JOIN bookmark on entry.eid = bookmark.eid
-> where bookmark.uid = 169848 limit 5;
こんな感じでSQL文を発行しますが、テーブルがパーティショニングで分けられている場合、
mysql> select eid from bookmark where uid = 169848 limit 5;
+—–+
| eid |
+—–+
| 0 |
| 4 |
| 5 |
| 6 |
| 7 |
+—–+
5 rows in set (0.01 sec)mysql> select url from entry where eid in (0, 4, 5, 6, 7);
こう、JOINせずに求めるという・・・。力業ですね(^_^;)
まだパーティショニングしたことないですが、こうなりますよねー。やはり。
関連する記事:
- Zend Framework – Zend_Db_Selectのメモ
- Eclipse PHP Development PDT 日本語化言語パック サードパーティ版
- HTMLの要素をSQLのように取り出せるPHPのライブラリ『htmlSQL』
- MySQLのLimitはOffsetのみの値を受け付けない
- Zend Frameworkで多対多のテーブルをリレーション無しで扱う。:
Powered by MightyAdsense
最近のコメント