- 98 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 23:56:30 ]
- >>95
C++は読めないんですが、読めないなりにO2DatDB.cppを眺めてみた感じでは 以下の2文が遅いように思えます。 ・where句なしのorder by random() ・select sum(disksize) from dat; 前者はたぶん全件ソートがかかると思われます。 (limitがかかっているとしても、それ以前に全件ソートがかかると思われます。) というか、そもそもDBMSはランダム処理が得意ではないので どっちにしろプログラム側で処理すべきです。 後者に関しては、このSQLを発行するならdisksizeにindexがあるべきです。 ただ、そんなに頻繁に使用するSQLではない(管理画面→状態と、 他ノードからのプロフィール参照でしか使わない?)と思うので あまり気にしなくても良いかもしれません。 それ以外はSQL単品で遅いものはないように見えるので、 呼び出す回数を減らすことを考えたほうが良いと思います。 ちなみに、テーブル構造をいじる必要は感じません。 正規化の観点では若干違反していますが パフォーマンス上は現状のほうが有利と思います。
|

|