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 데이터 유형은 파일 저장에 가장 적합합니다.
- 참조: PHP를 사용하여 .pdf 파일을 BLOB로 MySQL에 저장하는 방법?
- MySQL BLOB 참조 매뉴얼에는 몇 가지 흥미로운 설명이 있습니다.
다른 대답들은 당신이 요구한 것을 어떻게 달성할 것인지에 대한 좋은 생각을 해 줄 것입니다.
하지만
이것이 좋은 아이디어인 경우는 많지 않습니다.일반적으로 파일 이름만 데이터베이스에 저장하고 파일 시스템에 파일을 저장하는 것이 좋습니다.
이렇게 하면 데이터베이스가 훨씬 더 작아지고, 더 쉽게 전송할 수 있으며, 더 중요한 것은 백업/복원이 더 빠릅니다.
BLOB을 쓰셔야 하는데 TINY, MEDIAL, LONG이 있고 BLOB만 다른 타입과 마찬가지로 사이즈에 맞게 고르시면 됩니다.
TINYBLOB 255
BLOB 65535
MEDIUMBLOB 16777215
LONGBLOB 4294967295
(in bytes)
삽입문은 상당히 정상적일 것입니다.파일을 읽어봐야 합니다.fread
그리고 나서.addslashes
2023년.
언급URL : https://stackoverflow.com/questions/5959043/how-to-insert-a-file-in-mysql-database
'programing' 카테고리의 다른 글
jQuery 및 HTML을 사용하여 CSV로 내보내기 (0) | 2023.09.15 |
---|---|
strcase cmp 알고리즘에 결함이 있습니까? (0) | 2023.09.15 |
XPath contains()를 여기서 사용하는 방법? (0) | 2023.09.15 |
모든 jQuery AJAX 요청에 사용자 지정 http 헤더 추가 (0) | 2023.09.15 |
get_env()가 내 부울 환경 변수를 문자열로 취급하는 이유는 무엇입니까? (0) | 2023.09.15 |