2011年12月28日水曜日

データベース優先度に対する考察

memcachedが大分普及して来たようだけど
そこを踏まえて、どうすれば処理を高速化出来るか考えてみた
(というより、そういう話が出たので書いてみる)

高速記憶装置の順番で言えば
1位 CPUのキャッシュメモリー L1>L2>L3
2位 DRAM
3位 SSD
4位 HDD

というわけで、最近のL3キャッシュは容量も大きいし
IDからユーザー情報引っこ抜くとか、そういう用途で使うなら最強レベルの速さ
MySQLの拡張機能としてL3キャッシュDBなんてものを作って
後はデータが入りきらない場合、使用頻度の低い奴をDBから追い出す

次に優先度の高いデータをDRAMにmemcachedを使って記憶させる

比較的優先度の低いデータをSSDに、そしてHDDに入れる

次にデータベースエンジンとして、優先度の高い単純なデータをMyISAMテーブルに
その他はInnoDBに入れる・・・

また、機能によってはユーザー固有のデータを保持する事がある
例えばブログの日記のバックアップ機能
これはIndexedDBを使ってユーザーローカルに入れれば
サーバに負荷がかからない

こうする事で(後は優先度とデータの複雑性を検討に入れて設計すれば)
かなり処理の高速なシステムが作れそうな感じがする

他にPHPのモジュールやApacheをCPUのキャッシュに入られれば・・・(既に非メモリ常駐型)

最後にmod_pagespeedなんて組み合わせると最高かもしんない
これでベンチとってみたいなぁ・・・

という戯れ言でした

0 件のコメント:

コメントを投稿