programing

MySQL 데이터베이스에 파일을 삽입하는 방법?

topblog 2023. 9. 15. 20:41
반응형

MySQL 데이터베이스에 파일을 삽입하는 방법?

웹 서비스를 이용하여 원격 웹 서버에 상주하는 MYSQL 데이터베이스에 파일을 삽입하고자 합니다.

제 질문은 다음과 같습니다.파일을 저장할 테이블 열(예: varchar 등)의 유형은 무엇입니까?그리고 파일의 경우 삽입문이 다소 다를까요?

MySQL 유형별 파일 크기:

  • TINYBLOB 255바이트 = 0.000255Mb
  • BLOB 65535바이트 = 0.0655Mb
  • MEDIALBLOB 16777215바이트 = 16.78Mb
  • LONGBLOB 4294967295바이트 = 4294.97Mb = 4.295Gb

그러나 대부분의 경우 데이터베이스에 큰 바이트 블록을 저장하는 것을 권장하지 않습니다. 이는 전체 데이터베이스 크기를 증가시키고 실제 성능 문제를 야기할 수 있기 때문입니다.주제에 대해서는 여기서 더 읽어보실 수 있습니다.일관된 성능에 신경 쓰는 많은 데이터베이스에서는 이러한 작업을 수행할 수 없습니다.예를 들면.어떤 규모로든 성능이 뛰어난 것으로 알려진 AWS DynamoDB는 단일 아이템 기록을 400KB로 제한하고 있습니다.몽고DB는 16MB를 허용하는데, 이 또한 이미 너무 과합니다.원한다면 MySQL은 4GB를 모두 허용합니다.하지만 다시 한번 생각해보고 나서 그렇게 하세요.이러한 열 유형으로 큰 데이터 블록을 저장해도 무방한 경우는 트래픽 데이터베이스가 작기 때문에 개발 속도를 높이기 위해 모든 정보를 한 곳에 저장하는 것입니다.작은 회사의 내부 시스템처럼 말입니다.

BLOB 데이터 유형은 파일 저장에 가장 적합합니다.

다른 대답들은 당신이 요구한 것을 어떻게 달성할 것인지에 대한 좋은 생각을 해 줄 것입니다.

하지만

이것이 좋은 아이디어인 경우는 많지 않습니다.일반적으로 파일 이름만 데이터베이스에 저장하고 파일 시스템에 파일을 저장하는 것이 좋습니다.

이렇게 하면 데이터베이스가 훨씬 더 작아지고, 더 쉽게 전송할 수 있으며, 더 중요한 것은 백업/복원이 더 빠릅니다.

BLOB을 쓰셔야 하는데 TINY, MEDIAL, LONG이 있고 BLOB만 다른 타입과 마찬가지로 사이즈에 맞게 고르시면 됩니다.

TINYBLOB 255
BLOB 65535
MEDIUMBLOB 16777215
LONGBLOB 4294967295
(in bytes)

삽입문은 상당히 정상적일 것입니다.파일을 읽어봐야 합니다.fread그리고 나서.addslashes2023년.

언급URL : https://stackoverflow.com/questions/5959043/how-to-insert-a-file-in-mysql-database

반응형