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 MB
  • LONGBLOB: 最大约 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 数据对备份时间的影响。
  • 对于大文件,推荐使用外部存储(如对象存储)结合数据库引用。

上一篇      下一篇