mysql 存储 longtext 与 longblob数据类型的区别

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

mysql数据类型参考连接mysql数据类型

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

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

至于 longtext 与 longblob 两种数据类型性能上的优缺点对比以及其他区别需要再学习,也欢迎大家留言讨论。

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值