Mysqlについて、どの程度の処理が可能ですか?

このQ&Aのポイント
  • Mysqlで大量の写真データを管理する場合、絞り込みや並び替え機能を提供することも可能です。また、データベースから取得した写真情報を表示する際には、データベースの構造に応じたプログラムを作成する必要があります。
  • レンタルサーバーのパフォーマンスにも依存しますが、一般的には200枚程度の写真を表示することは問題ありません。ただし、大量の写真データを処理する場合は、データベースの最適化やキャッシュの活用など、効率的な処理方法を検討する必要があります。
  • データベースとしてMysqlを使用する場合、写真データの管理や絞り込み、並び替えなどの機能を付けることができます。ただし、写真データの量や処理の複雑さによっては、パフォーマンスの影響が出る可能性もあるため、最適化や効率的な処理方法を検討することが重要です。
回答を見る
  • ベストアンサー

Mysqlについて、どの程度の処理が可能ですか?

すいません。PHPを初めて勉強して実際にプログラムを作ってみたのですが、 その際データベースについて少し疑問があります。(初めてデータベースやPHPに触るので おかしな質問だったらすみません) 私は自分で撮った写真等を自分のウェブサイトに掲載したいと考えています。 データベースも同時に勉強し、とりあえずウェブサイトの形はできました。またデータベースに 入れるフィールドが8個あります(フィールドというのかカラム名というのかよくわかりませんが・・) さらに写真が2000枚くらいありますのでかなりの量となります。 (写真は今後もっと増えます) 例 写真のファイル名、カメラの種類、日付、季節、場所、カメラの設定、コメント、評価 これを季節や日付、場所など絞込、並び替えなどを訪問者が自由に できるようにしたいと考えています(フォームボタンを設置してラジオボタンなどで 並び替えをするサイトです。並び変えはデータベースで行いループで全てphpで表示します) ただそれに加え、画像の横に以下のような説明欄を設けデータベースから表示させるつもりです。 日付 2013-1-1 場所 海 カメラの種類 *** カメラの設定 *** コメント ********** 例えば 日付なら"日付$ggg"みたいな事になります。つまり以下のようにします。これが一番 更新が楽なのでそうしたいです。ただこの場合だと当たり前ですが5つのフィールドから5つの データを取り出す事になりますし、さらに何千枚もの写真の並び替えも同時に行う事になります。 (並び替えのプログラムなどは省略してあります) $pdo = new PDO("mysql:dbname=*****", "root"); $pdo->query("set names utf8;"); // $st = $pdo->query("SELECT * FROM ******************"); while ($row = $st->fetch()) { $ggg = ($row['日付']); 日付 $ggg 場所 $aaa カメラの種類 $bbb カメラの設定 $ccc コメント $ddd 表示は1ページに200枚ぐらいと考えていますが、このような事はレンタルサーバーで可能なので しょうか?パソコンの事はあまり詳しくないのですが、普通に考えれば処理できそうにないような 気がしますがどうでしょうか・・。

  • MySQL
  • 回答数2
  • ありがとう数15

質問者が選んだベストアンサー

  • ベストアンサー
  • mitoneko
  • ベストアンサー率58% (469/798)
回答No.2

 そこそこの普通のシステムなら、普通に出来る規模かと思います。総枚数2000枚程度であれば、「普通に考えれば処理できる」規模です。  MySQLは、普通のパソコンクラスでも、数万~数十万レコード程度なら、充分に扱える程度のシステムです。  フィールド数の方も、心配する領域としては、やっぱり桁が違います。  画像を扱うための保存領域の容量だって、2000枚程度なら、1枚2Mバイトとしても、4Gバイトほど。今時のハードディスクの保存容量からすればやっぱり桁が違いますね。  ただし、普通に出来るとは書いたものの、あくまで、私的な領域で使うレベルでの話です。観客数が増えて、1秒あたりのアクセス数が・・・なんてレベルになるなら、やっぱりそれなりの構成と検討が必要です。が、これは、静的な普通のホームページでも同じ事です。

toto073
質問者

お礼

ご回答ありがとうございます。大丈夫そうですね。

その他の回答 (1)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

極々普通の使い方だと思いますが。 ORDER BY で並び換えても、fetchで出てくる順番が変わるだけです。 内部のデータを実際に並び換えるわけではありません。

toto073
質問者

お礼

ご回答ありがとうございます。私の写真を何十人が同時に見る事はないと思いますが、 数人がぽちぽちと同時に押すと表示に時間がかかるのではないかと気になりました。

関連するQ&A

  • mysqlについてサンプルなど教えてもらえませんか

    すいません。今phpなどを使いウェブサイトを作っているのですが、データベースがどうしても 必要となり、参考サイトなどを見ながら作りました。 ほとんどできたのですが、最後に一部データベースの関数などでわからない事があり困っています。 (正直私はプログラムはphp程度が少し分かる程度で、データベースも単純な使い方しかしない 予定なので参考サイトをざっと見ただけでmysqlの事がほとんど分かりません) ググってそれらしい物を探してはいるのですが、私がやりたい事はデータベースから 件数を取りたいだけです。 取った件数をphpで表示したいのですが、何時間やっても良くわかりません。 申し訳ないんですが取り出した後その件数をphpのechoで表示するまでをサンプルとして書いてもらえませんか?(可能であれば「ここでこのような処理が行われている」とコメントがもらえると助かります) データベース関係はphpと違って初心者用のサイトなども無く、書いてある事がほとんど分かりません。 (ここでSELECT COUNT(*)を使うと教えてもらったのですが、SELECT COUNT(*)でググっても サンプルなども出てきません) $pdo = new PDO("mysql:dbname=aaa", "root"); $pdo->query("set names utf8;"); // ------------------------------------------------ $sql = $pdo->query("SELECT COUNT(*) FROM bbb"); $stmt = $pdo->query($sql); $stmt->execute(); $count=$stmt->rowCount(); echo $count; ----------------------------------------------- $result = mysql_query("SELECT COUNT(*) FROM bbb"); $row = mysql_fetch_assoc( $result ); echo $row;

    • ベストアンサー
    • MySQL
  • mysql

    phpでmysqlのテーブルからデータを引っ張ってくる構文なのですが $pdo = new PDO("mysql:dbname=データベース名", "root", "root"); $st = $pdo->query("SELECT * FROM テーブル名"); while ($row = $st->fetch()) { $name = htmlspecialchars($row['テーブル名']); $price = htmlspecialchars($row['price']); echo "<tr><td>$name</td><td>$price 円</td></tr>"; 上記のデバックに手こずっております。 自分の知りたいところはカタカナ、漢字の使われているところが正しいのか知りたいです。 またもっと楽な方法があれば教えて頂きたいです。 馬鹿でスミマセンがよろしくお願いします。

    • ベストアンサー
    • MySQL
  • phpでmysqlから画像パスを出力する

    phpを勉強始めたばかりで、データベースを使う必要がでてきたため、初心者サイトを 読んでいるのですが、一点質問があります。 行いたい事は、データベースに保存した画像パスをphpで出力するだけなのですが、パスが 文字列として扱われてしまっています。画像を出力するにはどうすれば良いでしょうか? 例えば以下のようなphpプログラムで、nameには画像パスである 「abc.jpg」という文字が 入っていたとすると以下ではそのままabc.jpgという文字列が出力されてしまします・・・。 <?php $pdo = new PDO("mysql:dbname=aaa", "root"); $pdo->query("set names utf8;"); $st = $pdo->query("SELECT * FROM bbb"); while ($row = $st->fetch()) { $name = htmlspecialchars($row['name']); echo '<img src="$name">'; } ?>

  • phpMyAdmin MySQL

    phpMyAdminについて データベース名は英語以外に漢字で作る事もできますが漢字やカタカナで作っているという特殊な?方はいらっしゃるでしょうか? (もし作ってる方がいらっしゃったら使用用途を教えて頂きたいです) データベース初心者はphpMyAdminなどGUIなどでやった方が理解は深まると思いますか? (ケースバイケースだとは思いますが...) マニアックな質問なのですが 文字コードの指定で utf-8-general-ci utf-8-Unicode-ci を比較した場合どちらがより汎用性のある文字コードだと思いますか? (これもケースバイケースだとは思うのですが) ソースコードについて $pdo = new PDO("mysql:dbname=yoyaku_status2", "root"); $st = $pdo->query("SELECT * FROM yoyaku"); while ($row = $st->fetch()) { $name = htmlspecialchars($row['status']); echo "<tr><td>$name</td><td> </td></tr>"; でデータベースから引っ張って画面に出力したものが「???」と文字化けする場合 header('Content-Type: text/html; charset=UTF-8');  mysql_query('SET NAMES utf8', $sql );    php.ini データベース作成時の文字コード指定 以外に文字化けする原因はありますでしょうか? ※全部答えなくて大丈夫です。 答えられる範囲で問題ありません。(データベース初心者でCUIはあまり使っていません)

    • ベストアンサー
    • MySQL
  • MySQLのデータベースを呼んで日付表示をする点で困っています。

    MySQLのデータベースを呼んで日付表示をする点で困っています。 フィールド名:k_pvm 型:DATE データ:2009-12-21 phpでキーを元に呼び出して表示しています。表示形式は、d-m-Yで21-12-2009と表示させたいのですが、うまくできません。 echo "<tr><td>Rekisteri: </td><td><input type='hidden' name='kpv'>" . date('d-m-Y', $row['k_pvm']) . "</td></tr>"; 表示> 01-01-1970 以下、日付データ部分を変えて試してみました。 date($row['k_pvm']) > 2009-12-21 $row['k_pvm'] > 2009-12-21 date('d-m-Y') > 2009-12-22 (試した当日の日付) 試した3点については理解できますが、呼び出したデータに表示形式を指定するとどうして、01-01-1970を表示するのか解りません。直接dateで表示するのではなく、何か手順を踏まないといけないのでしょうか。

    • ベストアンサー
    • MySQL
  • データベースの登録失敗の時の挙動について

    今PDOとphpを勉強中です。 フォームからデータベースにデータを登録できるようなサイトを作ったのですが、いくつか疑問点が出てきました。 まずデータベースのフィールドが5個くらいあり、テキストフォームも5個作り、5個の値をデータベースに飛ばし登録します。単純なプログラムなのですが、ユニーク設定などをしているとデータベースへの登録が失敗する事があります。 データ登録が失敗した場合「失敗しました」と画面に出したいのですが、 失敗したかどうか調べるPDOの関数はあるでしょうか?(今はちゃんと登録されているかどうかデータベースを開けないと分かりません) 詳しい方いましたらよろしくお願いします。 $st = $pdo->prepare("INSERT INTO aaa VALUES(?,?,?,?,?"); $st->execute(array($111,$222,$333,$444,$555));

    • 締切済み
    • PHP
  • PHPの書き方について

    PHPを独学で勉強中で、気になったことがあるので質問させていただきます。 最初に買った書籍とその次に買った書籍で書き方が違うところがあるので、普通はどちらでやるのか、また、使い分けがあるのかが知りたいです。 たとえば、データベースを1行ずつ取り出す処理で、1冊目では $pdo = new PDO($dnsinfo,$USER,$PW); $sql = "SELECT * FROM ○○"; $stmt = $pdo->prepare($sql); $stmt->execute(null); $res = ""; while($row = $stmt->fetch(PDO::FETCH_ASSOC)){ $res .= $row['△△'] ."," .$row['□□'] ."<br>\n"; } ・・・というコードがあったのですが、2冊目には同じような処理が mysqli_fetch_assoc()を使って書かれていたり、 接続の仕方も1冊目では「new PDO($dnsinfo,$USER,$PW);」を使って書かれているのが、2冊目では「mysqli_connect()」になっていたり、 他にも同じような処理がよく似たコードで書かれています。 調べてみると、PHP5.5から1冊目のやり方になった・・・ような記事を見つけたのですが、どちらの本もPHP5.5と書いてあり、いまいちよくわかりません。 詳しい方いらっしゃいましたらご教示お願いいたします。

    • ベストアンサー
    • PHP
  • 取り出した日付の表示

    phpにてDBに格納されている日付データを取り出した際にデフォルトで "2007-06-04"のように表示されてしまいますが、これを "07/06/04"や"07.06.04"のように表示するにはどうすればよいのでしょうか? MySQLのフィールドタイプはdateに設定しています。 print date(Y/m/d,"$row["日付フィールド"]");とやるとなぜか、 "1970/01/01"と表示されてしまいます。 普通に、print $row["日付フィールド"]");とやると 2007-06-04と出てしまいます。 どうぞ宜しくお願いします。

    • ベストアンサー
    • PHP
  • MySQLの日付データについて

    PHPでMySQLから日付データを表示しようとしているのですが、日付フィールドの値をvarcharにしてしまいました。 このような状況下での質問なのですが、varcharフィールドに2006年1月1日と2006年2月1日と2006年11月1日がある場合、PHPで日付データを表示するとこのような順番で表示されてしまいます。 2006年1月1日 2006年11月1日 2006年2月1日 下記のようなカレンダー順の表示にするにはどのような方法があるでしょうか? 2006年1月1日 2006年2月1日 2006年11月1日 また、下記の質問と回答を拝見したのですが、日付データはタイムスタンプで処理するのが一般的なのでしょうか? http://oshiete1.goo.ne.jp/qa1396724.html その場合、フィールドタイプをDATEにしておいて、PHPからMySQLに書き込む際はどのような形式が正しいのでしょうか? 2006/1/1のまま書き込んでも自動的にタイムスタンプに変換してくれるのでしょうか。 最後に私のような初心者がMySQLを勉強する際にお勧めの書籍やウェブサイトなどありましたら是非教えて頂けると幸いです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPとMySQLについて。

    初心者です。 さくらインターネットのスタンダードプランを使っています。 phpmyadminで「test」というCSVをインポートしました。 http://php.net/manual/ja/pdo.connections.php#example-976 こちらのページをそのままコピペして「test.php」をつくりました。 <?php try { $dbh = new PDO('mysql:host=○○○.db.sakura.ne.jp;dbname=データベース名', 'ユーザ名', 'パスワード'); foreach($dbh->query('SELECT * from test') as $row) { print_r($row); } $dbh = null; } catch (PDOException $e) { print "エラー!: " . $e->getMessage() . "<br/>"; die(); } ?> しかし下記のエラーが出てしまいます。 エラー!: SQLSTATE[HY000] [1045] Access denied for user 'ユーザ名'@'IPアドレス' (using password: YES) IPアドレスは調べたら、さくらインターネットのものでした。 現在サイトを作っている最中なので.htaccessでアクセス制限していたのが原因かと思い、このIPアドレスも許可したのですが同じエラーが出ます。 どうしたら正常に表示できるのでしょうか? xamppでは、 ڑ ς݂ Ăяo 悪 Ԃ ߂ Ă Ȃ ߁A ڑ ł ܂ ł B ܂ ڑ ς݂ z X g Ȃ ߁A m ꂽ ڑ s ܂ B のように完全に文字化けして、◆の中に?がある謎の記号が並んでいたり、何が何やら・・・。 完全にお手上げでどなたか助けていただけないでしょうか。