dポイントプレゼントキャンペーン実施中!

すいません、サーバー運用に詳しい方に質問があります。
初めてPHPとデータベースを勉強してあるウェブサイトを作りました。
一応完成したのでデータを毎日入れています。

内容としてはゲームやアニメ、漫画などの批評、検索のサイトでして、
ジャンルや内容によりフィルター機能、絞込機能などを入れました。
例えば、黒髪、バトル物、主人公が女性、日付順に並び替え、おすすめ順に並び替えなど・・・

などの条件でフィルターや絞込が行えます。完成した物に満足はしているのですが
条件を沢山付けすぎたためか実際にデータを300ほど入れると表示に時間がかかる時があるような
気がします。(結果が返ってくるのにひっかかる時があります)
予定では最終的にデータが5000から10000くらいに増えると思います。
現在あるサーバーの月1500円くらいのプランなのですが、月1500円程度ではやはりダメでしょうか・・。(負担のかかるサイトは運用できない・・?)

自分が目標としているようなサイトはどうも自宅サーバーで運用しているようです。最初はなぜ手間のかかる自宅サーバーをしているのかな・・と思っていたのですが、容量の大きいレンタルサーバーは月1万以上するようでして、年12万払うのでしたら面倒な自宅サーバーも選択肢に入りますよね・・。


例えば10人が一斉に私のサイトを利用した時が再現できず(私はパソコンは一台しか持っていませんし・・)月々どのくらいのプランのサーバーの契約をすれば良いかアドバイスいただけると助かります。

A 回答 (5件)

No.2です。



さくらインターネットのレンタルサーバーのプラン毎の違いをまとめた比較表が以下のページにあります。

http://www.sakura.ne.jp/plans.html

主に使用出来るツール機能とデータ容量の差ですね。ビジネス用の最も高いプランだとサーバーを専有(=CPUを専有)できますが、それ以外は共有です。
共有とはいってもデータベースは契約者ごとに別でしょうから(=でないとセキュリティが確保できない)適切なCPUの負荷分散が図られていれば他の契約者が重い作業をしているためにそれに引っ張られて遅くなるということはほぼ無いでしょう。
ましてや項目数が10程度のテーブル(テーブルは1つでさうよね?)でデータが僅か10,000件ほどのデータ検索ということですから遅いはずがなく。。。
なので「データを300ほど入れると表示に時間がかかる時がある」というのはデータ構造(テーブル構造)が悪いかSQL文が適当でないと考えます。

実際にどこが悪いかは「どういうデータ型のどういう項目が有って」、「どの項目にインデックスがはられていて」、「どういう検索を行うのか」といったことがわからないと何とも言えません。

どんな契約プランを選んだらよいかより、まずはご自身のプログラムのどこの処理で時間が掛かっているのかを把握することが重要でしょう。
恐らくSQL文をデータベースサーバに投げてから帰って来るまでの時間が長いのだと思います。
お使いのレンタルサーバ環境で契約者(開発者)がどのような性能計測ツールを使用出来るのかわかりませんが、何もなくても出来るのは開発されたプログラムの要所要所でシステム時間を取り込み、それを画面に表示させるとか計測用テーブルを作成してそこに入れるとかログファイルに書くとかし、その値を確認することでしょう。
最低限以下で計測するとよいと思います。

・プログラム起動直後
・変数を受け取り不正なデータが無いかのチェックが終わったところ
・検索を実行する直前
・検索から帰ったところ
・画面の送出を終わったところ

参考まで。
    • good
    • 0
この回答へのお礼

>ましてや項目数が10程度のテーブル(テーブルは1つでさうよね?)でデータが僅か10,000件ほどのデータ検索ということですから遅いはずがなく。。。


非常に良くわかりました。

お礼日時:2016/11/25 00:05

No2さんが詳しく書いていますのであまり書きませんが



>私は素人ですので「そうだ」と言われれば言い返せませんが、常識の範囲で「違う」と思いました。多くのお金を支払えばレスポンスは上がる物だと思いますが・・。
高い金を払えばリソースは増やせます。
ただCPUが不足していないのにCPUを増やしても意味が無いし、メモリが足りていないのにメモリを足しても意味がありません。

作りによっては占有2CPUで10億件を捌くことだってできます。
    • good
    • 0

どこがボトルネックになっているか突き止めないと何やっても解決しないかも。


他回答にもあるように、サーバパフォーマンスの問題ではない気がします。
どのDBMSを使っているのか書かれていませんが、たとえばMySQLならスロークエリログなどを取ってみるとかして、イケてないクエリを洗い出してみてはいかがでしょうか。

またMuninなどでサーバのCPUやメモリ状態なども監視しながら負荷テストをしてみる。
負荷テストのツールは、「負荷テストツール」や「ストレステスト」などで検索すればいくつか見つかります。
サーバの移行を考えるのはそれらの情報が集まってから判断すべきでしょう。
    • good
    • 1

タイトルの内容が異なるような。

。。(^^;

> 現在あるサーバーの月1500円くらいのプランなのですが、月1500円程度ではやはりダメでしょうか・・。(負担のかかるサイトは運用できない・・?)

これは何を言われているのか分かりません。
データ300件で反応速度が出ないのはデータ構造(テーブル構造)が悪いかSQL文が適当でないかでしょう。
目標の5,000件~10,000件のデータのサイズが月1,500円のプランの容量制限内に入るのなら問題無いでしょう。それだけのことかと思います。


> 例えば10人が一斉に私のサイトを利用した時が再現できず(私はパソコンは一台しか持っていませんし・・)

開発言語がJavaでしたらApache JMeterなど、負荷試験ツールが幾つかあります。


> 月々どのくらいのプランのサーバーの契約をすれば良いか

利用されているレンタルサーバーは同時アクセス数の制限などがあるのでしょうか?
それともアクセス数制限は無いが設備(Webサーバーあるいはデータベース・サーバー)の性能上、1契約者サイトへのアクセス数が一定量より増えるとレスポンスが落ちるという事でしょうか?
しかもそれは契約プランで変わると?

どこに視点を置かれて話をされているのか正直なところよくわかりません。(_ _;;
とりあえずデータ300件で既に遅いというのは先に書きました通りテーブル構造かそれをアクセスするSQL文の書式の問題でしょう。

参考まで。
    • good
    • 0
この回答へのお礼

私が伺いたいのはPHPとMySQLを使って一万件程度(行が一万程度、列が10程度のデータベース)を項目に従って並び替え、フィルタリングを行った場合、月1500円程度のレンタルサーバーで耐えられるのかどうか。

プログラムの構造次第という回答も分かりますが、そもそも私は初めてデータベースを触るので重いのがDBの設計なのか、そもそもこの金額ではこの程度なのかがまったく検討が付きません。

実際に見てみないと分からないと言われればそうなのでしょうか、可能であれば実際に

>>レンタルサーバーは同時アクセス数の制限などがあるのでしょうか?
そういったものはありません。

>>1契約者サイトへのアクセス数が一定量より増えるとレスポンスが落ちるという事でしょうか?しかもそれは契約プランで変わると?
どこに視点を置かれて話をされているのか正直なところよくわかりません。

逆に聞きたいのですが、では契約プランでサーバーの負荷能力が変わらないとでも?

http://www.sakura.ne.jp/

例えばサクラのレンタルサーバーでも月120円程度から12000円まで幅広くあるわけです。当たり前ですが多くの人が同時にデータベースを利用する場合120円のサーバと12000円のサーバーは同じ負荷、同じ速度なのでしょうか?

私は素人ですので「そうだ」と言われれば言い返せませんが、常識の範囲で「違う」と思いました。多くのお金を支払えばレスポンスは上がる物だと思いますが・・。

私が聞きたかったのはそのぐらいのデータベースを扱うならこのくらいのプランにした方が良いなどそういった意見です。

お礼日時:2016/11/24 15:11

DB設計の見直し、ロジックの見直し、SQLパフォーマンスの見直し。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!