データベースに画像を入れた場合の速度について

このQ&Aのポイント
  • データベースに画像を入れる場合とサーバに置く場合で、結果表示速度に差が出る可能性があります。
  • 画像の量が多くなる場合、データベースに画像を入れると速度が遅くなる可能性があります。
  • 他のサイトの情報によると、画像をデータベースに入れると性能低下が起こることがあるようです。
回答を見る
  • ベストアンサー

データベースに画像を入れた場合の速度について

こんにちは。 今phpとデータベースを勉強中でしてそれを使ったウェブサイトを作りました。 画像とその画像の説明文をいろんな条件で並び替えるサイトです。 プログラム自体はできあがったのですが、文章はデータベースに入れるとして、画像も できたらデータベースに入れたいと思い調べてみると入れる事はできるようです・・。 ただ画像の量が多く最終的には5000枚-10000枚くらいになりそうです。 複数の条件で並び替え→表示とする場合、データベースに画像を入れる場合と、サーバにそのまま置く場合では結果表示速度に差ってでるものなのでしょうか・・。(そのサイトを数十人が一度に並び替えをすると仮定して) どこかのサイトに画像をデータベースに入れるとかなり遅くなるというような事が書いてありました。 事実でしょうか? 質問の意味が分かりにくいかもしれませんが詳しい方いましたらご回答いただけると助かります。

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

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

画像などバイナリデータをDBにおくのはあまり効率的だと言えません。 検索や集計ができるわけでもないので 適当なidを数値でもって、ファイルとしておいておき、DBにはそのIDに ひもづくデータをを格納しておくくらいで十分だとおもいますが。

その他の回答 (1)

  • t_ohta
  • ベストアンサー率38% (5086/13298)
回答No.1

インデックスを適切に設定すれば、そんなに重くはならないでしょう。 ただ、検索・並べ替えする際のクエリーと画像データを取り出す際のクエリーは分けた方が負荷は少ないと思います。

関連するQ&A

  • 画像をデータベースに保存するやり方

    MySQLバージョン4.1.16を使用しています。 このジャンルでお願いします。 例えばPHPなどを使ってアプリケーションを作成する場合に 画像表示を行う個所があるとします。 その画像はデータベースに保存して、そこから表示させるやり方か、 それとも普通に1つの画像ファイルとしてフォルダに入れて、 「gazou.gif」のようにして表示させるやり方どちらが良いのでしょうか? なぜ前者も考えたかというと、あらゆるデータを1箇所(データベース)に 集めた方が良いのかな?と思ったからです。 ただ表示する度にデータベースに負荷がかかると思うのでどうなんでしょうか?

    • ベストアンサー
    • MySQL
  • 現在HTMLでウェブサイトを作っているのですが、表(いわゆるテーブル)

    現在HTMLでウェブサイトを作っているのですが、表(いわゆるテーブル)をサイトを見ている人が任意の並び順に変更できるようにしたいと思っています。(あくまでも「テーブルごと」です。テーブルの中身の数字などの並び替えではありません。) PHPの初心者向けのサイトをざっと読んでいたのですが、画像などを並び替えるのはプログラムサンプルなどが公開されていて分かりやすかったのですが、何点が分からない事がありまして質問します。 私のやりたいのは画像などの単一のファイルではなく、100個程度あるテーブルごとの並び替えなのですが、これはPHPのみでできるのでしょうか? またテーブルが非常に多いので、データベース化も考えているのですが、データベース化はmysqlで行い、PHPで呼び出し、並び替えるのが良い・・と過去の質問でもあったのですが、 やはりこの二つを覚えるのが近道でしょうか?そもそもテーブル(Html文)をデータベース化できるものなのでしょうか。(現在私はHTMLとCSS程度しか分かりません) よろしくお願いします。

    • ベストアンサー
    • PHP
  • データーベースのすべての画像を取り出したい

    データーベースのテーブル内の画像をすべて取り出すプログラムを書いています。 データベース(Mysql)には画像が4列(4個)存在しますがプログラムの書き方が悪いと思うのですが、1つしか画像を取り出すことができません。 すべて取り出すにはどこを直せばよいでしょうか? 書いたソースは以下になります。 たぶん$img_db=$row["img_data"]; echo $img_db;が原因のような気がしますが分かりません。 詳しい方教えてください。 <display.php>(データーベースから読み込みようphp) <?php $conn=mysql_connect("localhost","root",""); mysql_select_db("practice"); $result = mysql_query("select img_data from sample "); while($row= mysql_fetch_array($result)){ $img_db=$row["img_data"]; echo $img_db; } ?> <output.php>(ブラウザ表示用php) <html> <head> <meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8”> <title>画像表示</title> </head> <body> <p>MySQLのBLOBにバイナリで格納した画像を表示してみます。</p> <?php echo "<img src=\"display.php?$img_db\">" ?> </body> </html>

    • ベストアンサー
    • PHP
  • ウェブサイトとデータベースを連動させるには

    友人のカーディーラーからウェブサイトのデザインを頼まれました。 複数の画像が表示させられる形式で、車種年式メーカーなど10項目ほど車の情報を画像の脇にのせたいとのことです。 友人は車の情報をデーターベースで管理し、こっちの情報を更新すると、 ウェブサイトの情報も更新させるようにしたいといいます。 このようにウェブサイトとデータベースを連動させるにはどうしたらよいでしょうか? エクセルだと画像の管理ができないので、画像管理できるデータベースソフト(ウェブと連動できるもの)も教えて頂けると大変助かります。

  • 画像パスをデータベースに入れたいのですが

    現在、PHPを勉強中の身のものです。勉強中ということで色々プログラムを作成し試行錯誤しています。そして、つまりに詰まってわけがわからなくなったので質問させてもらいました まず、現在考えている事は書き込みフォームに名前を書く欄と、画像をアップロードするボタンを作ろうと考えています。言語はPHP、データベースはMysqlです。簡易画像アップロード掲示板みたいなものですね。 名前を入力し、データベースに保存は結構簡単にできました。次に、画像をアップロードして、同時にデータベースに画像パスを保存というシステムを組もうと考えたのですが、中々上手くいきません。画像を特定のフォルダへアップロードすることは簡単だったのですが、それを画像パスとしてデータベースに保存する事ができませんでした。 ネットで調べても、具体的な方法が書いてませんでしたのでよくわかりませんでした。理屈はなんとなーくわかるのですが、なにぶん自分まだ超初心者でして、現在は具体的なプログラムを見て、理解していく勉強法を行っています。 お手数ですが、プログラミングに詳しい方、お時間があるときで良いのでアドバイスを頂けると嬉しいです。詳しい方にとってはこの程度って思うかもしれませんが、私はこれで数時間つぶされて現在も試行錯誤中です。なので少しでも手がかりができれば嬉しいです

    • ベストアンサー
    • PHP
  • 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
  • データベースから検索結果に画像表示

    mysql の画像データを表示。 phpmyadminでBOLBでデスクトップ上の画像をデータベースに保存し、phpで<?php print"<td>{$row['gazou']}</td>"; ?>で呼び出しますが、酷いバグになります。宜しければ正しいやり方教えてください。

    • 締切済み
    • PHP
  • この場合のデータベースの作り方 初心者です。

    PHPとMYSQLにて検索システムを作りたいのですが、http://www.nighkyaba.jp/cast/index このような場合、テーブルのレコードやフィールドの数、PrimeryKeyなどどのようにして作れば良いのでしょうか? 基本的には、検索する条件(地域・年齢等)の数だけ(ここでは10個程)フィールドをつくるという事なのでしょうか? また、データベースをサイトからではなく直接ファイルに記録するにはコマンドプロンプト以外に便利なフリーソフトはありますでしょうか? WEB制作の社員で、MYSQLは初心者です。何卒宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • どうやってデータベースサーバをイントラネットにおくのでしょうか

    postgreSQLとPHPで出来る事をウェブページで色々とやってみたいのですが、データベースをレンタルサーバ上に置くのは怖いのでやりたくないのです。この場合はどうすれば良いのでしょうか。イントラネット上でウェブサーバというかデータベースサーバを用意しないといけないのでしょうか? また、レンタルサーバ上にデータベース情報を置くのはセキュリティ上危険だと思うのですが、実際はそうでもないのでしょうか? 大手のウェブサイトでは通常このような時、どのような環境で制作しているのでしょうか?

  • データベースからの画像の読み出し

    お世話になります。 アップロードされた画像のバイナリデータをデータベースに格納して、PHPからデータを読み出して表示させているのですが、IE, Firefox, safari, operaなどのブラウザでは正常に表示できるのに、携帯端末のブラウザからは画像が表示されません。 $header = "Content-Type:image/jpeg"; header($header); echo $image; のようなコードですが、なぜ携帯端末で表示できないのか分からず困っております。 宜しくお願い致します。

    • ベストアンサー
    • PHP