Linux、シェルスクリプトともに初心者です。
あるフォルダ(/home/user/image)の中にサブフォルダがありその中に画像ファイル(*.jpg)がたくさん入っています。この画像名をシェルスクリプトを使ってMySQLに書き込みたいと思っています。
いろいろネット検索して以下のようなシェルスクリプトを作成しました。これで一応動くのですが、それぞれのデータを書き込む時にその都度ユーザー名とパスワードをチェックするためかあまり速く動きません。
ループの前に最初にMySQLにログインして、その後ループを回したほうが速く動くような気がするのですがそのような方法はあるでしょうか?
また、画像数がとんでもなく多く更にはどんどん追加されるので、途中まで書き込んだ後に一旦終了して後日続きをおこなう場合に、画像名をuniqueとすると当然一意義務違反になるのですがそれを避ける方法はあるでしょうか?
本来は自分で検索する部分もあるかと思いますが、少々急いでおりますので質問させて頂きました。
どうぞよろしくお願いします。
#!/bin/sh
cd /home/user/image
for file in `find . -name '*.jpg'`; do
echo $file
echo "INSERT INTO image.imglist (imageName) VALUES ('$file');" | mysql -u root -ppassword
done
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
とりあえずテンポラリに書き込んでからまとめて流し込んだほうがよいのでは?
mysql -u root -ppassword < テンポラリファイル
データが多いのであればちょっと工夫が必要ですが
100件とか1000件とか適当な単位でデータをまとめて
バルクで流し込むことも検討した方がよいかも
yambejp さん投稿ありがとうございます。
バルクインサートの概念勉強になりました。
ただ、何しろシェルスクリプトに関して初心者なので、「100件とか1000件とか適当な単位でデータをまとめて」というのは私にはハードルが高く、まずはシェルスクリプトを勉強すべきという当然の結論に達しました。
画像ファイルは実は jpg ではなくて dcm(dicom) なのですが、ファイルの中の情報を解析してある処理をさせたいと思っていて、処理をさせるための台帳のようなものを作成する必要があると考え質問したのですが、よく考えたら既存のデータベースから必要事項を抜き出せばいいと気づきました。なんとも間抜けな話です。
PHPはある程度のプログラミングはできるのでいつかバルクインサートを使うかもしれません。そういう意味では質問した意味があったと思っています。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- YouTube ユーチューブへの動画投稿にサムネイルを付ける方法は? 1 2022/07/21 23:45
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- PHP $filePath = './user_img/' . $file['name'];? 1 2022/12/10 07:29
- PHP 掲示板を資料を参考にして開発中ですが、画像がアップされません? 1 2022/11/21 06:44
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- 写真・ビデオ 写真や動画を保存する、これらを満たしたサービスはありませんか。 ・iOS, Android, Mac 2 2023/07/30 18:35
- PHP imageフォルダに、画像をリサイズして保存する時のファイル名を変更したい 1 2023/05/30 11:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラミングについて。 1つ...
-
どなたかこのプログラミングを...
-
ネットワークループとルーティ...
-
VBAでの一時停止と再開の方法
-
画面を強制的に再描画させる方法
-
イベントの発生を待つ
-
UWSCの終了の仕方
-
多重ループの抜けだし方
-
【VBA】指定の範囲から特定の文...
-
VBA横データを縦にしたいです
-
DOSコマンドのループ内のTIMEコ...
-
vb.netからエクセル関数書き込み
-
ループフリー
-
これの名称なんて~の?ダッフ...
-
VLC media Playerでのループ再生
-
スレッド起動したフォームを正...
-
CASL2のアセンブリ(?)で質問...
-
テキストボックスの名前に変数...
-
範囲指定したセルを1つずつ飛...
-
VisualStudioにてモザイクの画...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
画面を強制的に再描画させる方法
-
VBAで3秒だけ時間を止めたい
-
VBAでの一時停止と再開の方法
-
どなたかこのプログラミングを...
-
Escキーを押すと、中断する時と...
-
UWSCの終了の仕方
-
エクセルの当番表を作っていま...
-
VBA for i=1 to lastrow
-
「偶数・奇数の和」のフローチ...
-
アクティブセルから、A列最終行...
-
DoEventsが必要な理由について
-
vb.netからエクセル関数書き込み
-
GIFアニメをループさせたくない
-
DOSコマンドのループ内のTIMEコ...
-
範囲指定したセルを1つずつ飛...
-
流れ図(フローチャート)が分か...
-
乱数の桁数指定、または範囲指定。
-
テキストボックスの名前に変数...
-
CSVファイルの特定の行だけを読...
-
vb.netです。2次元配列の要素を...
おすすめ情報