MySQL 确实可以存储 PDF 文件,主要通过以下几种方式实现:
最直接的方法是使用 BLOB (Binary Large Object) 数据类型:
CREATE TABLE documents (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
content LONGBLOB NOT NULL,
mime_type VARCHAR(100) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
然后使用编程语言(如PHP、Python等)将PDF文件作为二进制数据插入:
// PHP 示例
$pdfContent = file_get_contents('document.pdf');
$stmt = $pdo->prepare("INSERT INTO documents (name, content, mime_type) VALUES (?, ?, 'application/pdf')");
$stmt->execute([$fileName, $pdfContent]);
更常见的做法是存储PDF文件在文件系统中,只在数据库中存储文件路径:
CREATE TABLE documents (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
file_path VARCHAR(512) NOT NULL,
mime_type VARCHAR(100) NOT NULL DEFAULT 'application/pdf',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
方法 | 优点 | 缺点 |
---|---|---|
BLOB存储 | 数据集中管理,备份方便 | 数据库体积增长快,性能影响大 |
文件路径 | 数据库轻量,性能好 | 需要额外管理文件系统,备份需分开处理 |
您需要根据具体应用场景选择最适合的存储方式。