MySQL

「自作ソフト」の処理手順に問題がないか確かめるために処理速度を、
測ってみました。当店の顧客数は少ないので、4000軒ほどのデータを
作成し、いろいろな操作の時間を測りました。

10日以内にガス切れになる顧客を検索するメニューを実行したところ
なんと 600秒(10分)かかりました。動いているのかなと心配になるほどの
時間です。
これは明らかに処理手順が悪いということなのでプログラムを修正しました。

改良したスクリプトで同じ検索をしたところ、40秒ほどまでに短縮できました。
それでも、時間がかかり過ぎです。しかし、4000軒も顧客数がある販売店が
わたしの「自作ソフト」を使用するはずはないので、600軒程度の顧客数で
そこそこの速度が出れば良しとすることにしました。

貴重なアドバイスをくださった方に、上の実験結果を報告したところ
次のような返事がきました。う〜ん。プロはやっぱりすごい。

以下メールからの引用です

この辺のことが気になると専門家に依頼しないと解決しなくな
りますが、費用も高額になるので皆さんが躊躇します(笑)。
単純に10倍は高速化しますよ。
あとは目標となる時間を明示すると、費用と効果が明確なので
専門家に依頼しても失敗したと感じる事が少ないです。

SE的な目でみると、素人の作成したdbは効率が悪いので、
dbの構造を見直して2倍、プログラム&dbの調整で10倍
・・・という感じで20〜30倍は高速化すると思います。 
それ以上の高速化が必要な時は、使用するサーバーやdbを選
択して目標値を達成するように作業しますが、そうなると費用
が膨大なものになってきます。

目安ですが、データー量が『数万』という単位になったら専門
家のアドバイスを受けると良いと思います。