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 兩種數據類型性能上的優缺點對比以及其他區別需要再學習,也歡迎大家留言討論。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章