MySQL 中 BLOB 类型详解
学习笔记作者:admin日期:2025-05-26点击:45
摘要:本文介绍了 MySQL 中 BLOB 类型的分类、特点、使用方法及注意事项,包括如何插入和查询 BLOB 数据,以及在实际应用中的最佳实践。
MySQL 中 BLOB 类型详解
在 MySQL 数据库中,BLOB 是一种用于存储二进制大对象的数据类型,适用于存储图片、音频、视频等文件。
MySQL 中的 BLOB 类型
MySQL 提供了多种 BLOB 类型,按照存储容量从小到大分为:
TINYBLOB
: 最大 255 字节BLOB
: 最大 65,535 字节MEDIUMBLOB
: 最大约 16 MBLONGBLOB
: 最大约 4 GB
创建包含 BLOB 字段的表
CREATE TABLE documents (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255),
content LONGBLOB
);
插入 BLOB 数据
以下是使用 Python 插入 BLOB 数据的示例:
import pymysql
with open('example.pdf', 'rb') as f:
blob_data = f.read()
conn = pymysql.connect(host='localhost', user='root', password='***', db='testdb')
cursor = conn.cursor()
cursor.execute("INSERT INTO documents (title, content) VALUES (%s, %s)", ('example.pdf', blob_data))
conn.commit()
conn.close()
查询和导出 BLOB 数据
从数据库中提取 BLOB 数据并保存为文件:
cursor.execute("SELECT title, content FROM documents WHERE id = 1")
title, blob_data = cursor.fetchone()
with open(f'output_{title}', 'wb') as f:
f.write(blob_data)
使用建议
- 避免频繁操作 BLOB 字段以减少性能开销。
- 数据库备份时注意 BLOB 数据对备份时间的影响。
- 对于大文件,推荐使用外部存储(如对象存储)结合数据库引用。