質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

172閲覧

数千枚の画像の保存方法について

DeepRoastBeans

総合スコア79

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

2クリップ

投稿2018/03/03 10:53

php, mysqlで画像サイトを作っており、数千枚以上の画像をサーバーに保存して、ジャンルごとに表示させたいのですが、画像を置くフォルダおよび画像のパスはどういう設計が好ましいのでしょうか?

当初、ジャンルごとにimgフォルダを作成し、そこにdate(ymd)とidを付与した名前で画像を追加していき、パスをmysqlに保存しようと考えておりました。ジャンルごとに保存した日時が新しい画像から順番に表示させたいのですが、画像数が増えた場合に、処理速度が遅くなるのではないかと懸念しています。

サーバーはcentos6.9です。

※pixtaの画像のパスを見ると、階層が複数ありますが、どういう背景・仕組みなのかよくわかりません。
https://t.pimg.jp/028/110/947/1/28110947.jpg
https://t.pimg.jp/028/110/939/0/28110939.jpg

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

※pixtaの画像のパスを見ると、階層が複数ありますが、どういう背景・仕組みなのかよくわかりません。
https://t.pimg.jp/028/110/947/1/28110947.jpg
https://t.pimg.jp/028/110/939/0/28110939.jpg

まず、URIとして使用される画像のパスとファイルシステム上でどう保存されているかは切り離すことも出来るので(画像のバイナリをDBに保存したり、外部のストレージサービスに置いたりなど)別のものだと考えた方が楽です。

ファイルシステムとしては、
ディレクトリのファイル一覧をファイルシステム的な操作で取得するような操作をすることがあるのであれば、そのディレクトリ直下のファイル数について気にする必要があります。
逆に言うと、ファイル一覧はDBに保存しているデータから取得したり、ファイルの指定はDBに保存されているフルパスのみで行うのであればディレクトリ毎のファイル数はあんまり気にする必要は無くなります。

当初、ジャンルごとにimgフォルダを作成し、そこにdate(ymd)とidを付与した名前で画像を追加していき、パスをmysqlに保存しようと考えておりました。ジャンルごとに保存した日時が新しい画像から順番に表示させたいのですが、画像数が増えた場合に、処理速度が遅くなるのではないかと懸念しています。

この場合、ファイル一覧をDBから取得するのであれば、パフォーマンス的にはこの設計で問題無いです。

以下は質問内容とは直接関係しないところです。

  • ファイルの配置とは別問題として、画像が多くなると単純に通信量が多くなって表示が遅くなるので、アップロード時にサムネイル画像を生成するなどして対応する必要はあります。

  • 画像をログインユーザーだけ閲覧可能にしたい場合はファイルのURIを直接指定してもアクセス出来ないようなアクセス制限をかける必要はあります。

投稿2018/03/03 14:08

tanat

総合スコア18713

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

DeepRoastBeans

2018/03/03 14:29

はじめまして。DeepRoastBeansと申します。 ありがとうございます。大変勉強になりました。 細かいところまで恐縮です。
guest

0

おおよそ

https://t.pimg.jp/028/110/947/1/28110947.jpg

028: カテゴリ Lv 1
110: カテゴリ Lv 2
947: カテゴリ Lv 3
1 : 公開状態 ( 限定公開/完全公開 )
28110947.jpg : 画像 ID + 拡張子

が一般的な分類だとおもうが仕様は管理者に聞いてください。

投稿2018/03/03 13:10

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

umyu

2018/03/03 13:21

質問文の画像リンクだと1 : 公開状態 ( 限定公開/完全公開 ) ではなく、画像のサイズみたいですね。
DeepRoastBeans

2018/03/03 13:22

はじめまして。DeepRoastBeansと申します。 詳細ありがとうございます。ツリー構造で管理されてる旨、理解致しました。 ありがとうございます。
退会済みユーザー

退会済みユーザー

2018/03/03 13:23

umyu まあ確認しにいってないんで、最後の一文に至るw
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問