Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara menyimpan gambar di database MySQL

MySQL adalah salah satu sistem manajemen database yang populer. Ini dapat digunakan untuk menyimpan dan mengambil data yang dirancang sesuai dengan aplikasi. Sebagian besar aplikasi diperlukan untuk mengelola gambar. Tutorial ini menyediakan opsi untuk menyimpan gambar dalam tabel MySQL.

Catatan :Profesional dapat membantu Anda dengan pengembangan basis data gambar untuk perusahaan atau proyek Anda.

Simpan Jalur Gambar

Pendekatan paling sederhana adalah menyimpan gambar dalam direktori pada sistem file dan menyimpan referensi ke foto dalam database seperti SQL &MySQL, misalnya, jalur ke gambar, nama gambar, dan sebagainya. Atau, Anda bahkan dapat menyimpan gambar di CDN atau banyak host di beberapa wilayah besar yang luas dan menyimpan referensi mereka untuk mengakses sumber daya tersebut di database itu.

Dengan cara ini, kita tidak diharuskan untuk menyimpan seluruh gambar dalam database tetapi hanya menyimpan path ke gambar yang disimpan dalam sebuah folder. Menyimpan gambar baik jika gambar akan selalu berada di folder yang sama, yaitu jika setiap gambar akan memiliki jalur unik yang akan selalu sama. Namun, dalam beberapa kasus, gambar harus dipindahkan dari satu folder ke folder lain. Dalam hal ini, solusi terbaik adalah membuat jalur dinamis ke file gambar, jadi jika gambar harus dipindahkan, tidak ada kewajiban untuk memodifikasi database.

Kami dapat memperbarui tabel yang ada untuk menambahkan bidang jalur gambar seperti yang ditunjukkan di bawah ini.

// Add column to store image path
ALTER TABLE `my_table`
ADD COLUMN `image_pathLocation` varchar(1024)

Pendekatan lain adalah membuat tabel terpisah untuk gambar dan menambahkan referensi dalam tabel menggunakan tabel gambar. Dengan cara ini, beberapa tabel dapat menyimpan gambar dalam satu tabel. Anda dapat menggunakan tabel yang disebutkan di bawah ini untuk menyimpan gambar Anda.

// Create the Image table

CREATE TABLE image (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(1024) NOT NULL,
`title` VARCHAR(2048) NULL,
`description` VARCHAR(4096) NULL,
`extension` VARCHAR(160) NULL,
`directory` VARCHAR(512) NULL,
`size` FLOAT NOT NULL,
`type` VARCHAR(50) NOT NULL,
`url` VARCHAR(2048) NULL,
`medium` VARCHAR(1024) NULL,
`small` VARCHAR(1024) NULL,
`thumb` VARCHAR(1024) NULL,
`caption` VARCHAR(1024) NULL,
`altText` VARCHAR(512) NULL,
`createdAt` DATETIME NULL,
`modifiedAt` DATETIME NULL,
PRIMARY KEY (`id`),
INDEX `idx_image_name` (`name` ASC),
INDEX `idx_image_type` (`type` ASC)
) ENGINE = InnoDB;

Pada tabel di atas, nama adalah nama sebenarnya dari gambar yang disimpan, dan judul bersifat opsional untuk mendapatkan masukan dari pengguna yang mengunggah gambar. Juga, kolom tipe dapat memutuskan apakah gambar disimpan secara lokal atau di CDN. Jika disimpan secara lokal, maka kita dapat menggunakan direktori kolom untuk menentukan jalur penyimpanan gambar. Dalam kasus CDN, kita dapat menggunakan URL kolom untuk mendapatkan jalur dasar gambar. Selain jenis, direktori, dan URL, kita juga dapat menggunakan small, medium, dan large untuk menyimpan gambar yang sama dalam berbagai ukuran.

Saat Anda perlu menggunakan gambar, ambil dari disk menggunakan jalur yang ditentukan. Keuntungan dari pendekatan ini adalah bahwa gambar tidak perlu disimpan di disk; kita dapat menyimpan URL alih-alih jalur gambar dan mengambil gambar dari lokasi mana pun yang dapat diakses internet.

Simpan Gambar di Tabel MySQL

Cara lain untuk menyimpan gambar di database MySQL adalah dengan menyimpannya di tabel itu sendiri. Ukuran gambar bisa sangat besar, terkadang lebih besar dari 1 atau 2MB. Jadi, menyimpan gambar dalam database dapat menambah beban pada database Anda dan jaringan antara database dan server web Anda jika mereka berada di host yang terpisah.


Dalam pendekatan ini, file gambar bisa jadi sulit untuk dikelola. Anda harus terlebih dahulu memulihkannya dari database sebelum operasi lain dilakukan.


Ada beberapa pengecualian dimana seluruh database disimpan dalam RAM. Database MySQL disimpan secara berurutan pada disk. Ini berarti bahwa file gambar database Anda diubah menjadi gumpalan, disematkan ke dalam database, dan kemudian disimpan di disk. Kita dapat menghindari banyak masalah hanya dengan menyimpannya di disk seperti yang disebutkan pada pendekatan pertama.

Sekarang buat tabel Gambar untuk menyimpan gambar dalam database. Saya telah menggunakan id untuk mengidentifikasi setiap gambar dan keterangan untuk menyimpan nama gambar untuk tujuan tampilan. kolom gambar menyimpan gambar dalam tabel menggunakan tipe data sebagai LONGBLOB .

// Create the Image table

CREATE TABLE image (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(1024) NOT NULL,
`title` VARCHAR(2048) NULL,
`description` VARCHAR(4096) NULL,
`extension` VARCHAR(160) NULL,
`size` FLOAT NOT NULL,
`caption` VARCHAR(1024) NULL,
`altText` VARCHAR(512) NULL,
`picture` LONGBLOB NOT NULL,
`createdAt` DATETIME NULL,
`modifiedAt` DATETIME NULL,
PRIMARY KEY (`id`),
INDEX `idx_image_name` (`name` ASC),
INDEX `idx_image_type` (`type` ASC)
) ENGINE = InnoDB;

Ringkasan

Tutorial ini menyediakan opsi untuk menyimpan gambar menggunakan database MySQL. Pendekatan yang sama dapat diikuti untuk database lain.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana Operator RLIKE Bekerja di MySQL

  2. Temukan catatan duplikat di MySQL

  3. MySQL di Cloud - Pro dan Kontra Amazon RDS

  4. Bagaimana cara menyimpan karakter UTF8 di MySQL

  5. MySQL DATEDIFF() vs TIMEDIFF():Apa Bedanya?