mysql数据库longblob

最近项目中同时用到了存储大文本的两种情况,做一小结。

1.将文件存储到 mysql 中,存储为二进制数据。

mysql 的表字段类型选择了LONGBLOB。在java中生成的实体类对应的字段类型为 byte[ ];

CREATE TABLE `tmp_jmeter_case` (
  `ID` int(16) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `JMETER_CASE_NAME` varchar(100) DEFAULT NULL COMMENT 'jmeter用例名称',
  `FILE_NAME` varchar(100) DEFAULT NULL COMMENT '原文件名',
  `SYS_FILE_NAME` varchar(100) DEFAULT NULL COMMENT '系统文件名',
  `UPLOAD_TIME` timestamp NULL DEFAULT NULL COMMENT '上传时间',
  `UPLOAD_BY` varchar(10) DEFAULT NULL COMMENT '上传人',
  `UPDATE_TIME` timestamp NULL DEFAULT NULL COMMENT '修改时间',
  `UPDATE_BY` varchar(10) DEFAULT NULL COMMENT '修改人',
  `FILE_DATA` longblob COMMENT '用例数据',
  `YN` char(1) DEFAULT '1' COMMENT '是否删除(1-未删除,0-已删除)',
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='jmeter测试用例表';
public class TmpJmeterCasePo implements Serializable {
    private Integer id;
    private String jmeterCaseName;
    private Date uploadTime;
    private String uploadBy;
    private byte[] fileData; //longblob 对应的java字段类型为 byte[]

 选择这种方式落库的特点在于,想要查看存下来的数据需要先解析 二进制数据,不能直观看到文本内容。

2.将文件存储到 mysql 中,存储为文本数据。

CREATE TABLE `tmp_jmeter_exe_log` (
  `ID` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `JMETER_CASE_ID` int(16) DEFAULT NULL COMMENT 'jmeter测试用例ID',
  `EXE_BY` varchar(10) DEFAULT NULL COMMENT '操作人',
  `EXE_TIME` timestamp NULL DEFAULT NULL COMMENT '操作时间',
  `IS_SUCCESS` char(1) DEFAULT NULL COMMENT '是否成功(0-失败,1-成功)',
  `EXE_TYPE` char(1) DEFAULT NULL COMMENT '执行方式(单次执行-1,批量执行-2,定时执行-3)',
  `REQUEST_FILE_NAME` varchar(100) DEFAULT NULL COMMENT 'jmeter配置文件名',
  `RESULT_FILE_NAME` varchar(100) DEFAULT NULL COMMENT '执行结果文件名',
  `RESULT_DATA` longtext COMMENT '执行结果数据',
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=67 DEFAULT CHARSET=utf8 COMMENT='jmeter执行日志表';
public class TmpJmeterExeLogPo implements Serializable {
    private Integer id;
    private Integer jmeterCaseId;
    private String resultData; //longtext 对应的java字段类型为String

 选择这种方式落库的特点在于,查看文本内容不需要解析,读出来即可用,或者直接从数据库表就能查看;

总结

mysql数据库中有一种数据类型是longblob (lang binary large object),二进制大对象,是一个可以存储 二进制文件的容器。(例如html,xml等文件)
LongBlob的含义
他相对于Blob这个类型来说就是储存的数据更大
在计算机中,BLOB常常是数据库中用来存储 二进制文件的字段类型。
BLOB是一个大文件,典型的BLOB是一张图片或一个声音文件,由于它们的尺寸,必须使用特殊的方式来处理(例如:上传、下载或者存放到一个数据库)。
根据Eric Raymond的说法, 处理BLOB的主要思想就是让文件处理器(如数据库管理器)不去理会文件是什么,而是关心如何去处理它。
但也有专家强调,这种处理 大数据对象的方法是把双刃剑,它有可能引发一些问题,如存储的 二进制文件过大,会使数据库的性能下降。在数据库中存放体积较大的多媒体对象就是 应用程序处理BLOB的典型例子。

原文链接:mysql 存储 longtext 与 longblob数据类型的区别_longtext和longblob_张漂亮’s Blog的博客-CSDN博客

原文链接:https://blog.csdn.net/kingdaqi/article/details/114405249

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诉予

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值