探究数据库mysql的vachar、test、longtext存储极限

news2024/9/24 15:25:23

文章目录

    • 背景
    • 介绍
    • 项目实操
    • 如果想要自己尝试,使用Apipost工具,调用接口测试即可
    • mysql类型

如果感觉有点意思点个关注,一键三连吧!蟹蟹!!!

背景

想要清晰的了解到,使用longtext类型,保存富文本数据到mysql数据库是否够用,又是如何够用的。网上搜了很久没有想要的答案,自己尝试了一下,虽然没有到极限,但是完全够用。
longtest类型,对应java和mybatis框架类型为string。

介绍

    mysql5.0版本以前,longtext可以储存127个文字。5.0以上版本longtext可以储存32767个文字,utf8编码下最多支持10921个字符(不为空)。
    mysql5.0版本以前,longtext最大能定义255字节长度。5.0以上版本支持65535字节长度,utf8编码下最多支持21843个字符(不为空)。
    因为一个文字占用两个字节,因此mysql5.0版本以前,longtext可以储存127个文字。5.0以上版本longtext可以储存32767个文字,utf8编码下最多支持10921个字符(不为空)。
扩展资料:
longtext使用比固定长度类型(text)占用更大的存储空间(除了使用ROW_FORMAT=FIXED创建的MyISAM表)。节约空间,所以性能会有帮助。在更新的时候会产生额外的工作。
5.0以上版本,longtext取值或设置值都会保存字符串末尾的空格,4.1之前的版本longtext都会把字符串末尾的空格删除掉。最大长度远大于平均长度,很少发生更新的时候适合使用longtext,因为碎片更少了。
简单了解下
varchar为变长字节,所占空间为字符串实际长度加1,最长为65535个字节
而longtext也是变长字符存储,只保存字符数据,最长为4294967295字节,比较适合存储大内容
换句话来说(理想状态下):

4294967295除以3得到,1431655765个汉字,14亿多。

项目实操

你可以随意创建一个表,id,content两个字段,也可以按照我的表创建。
你可能遇见的问题,比如主键自增不是按照自己想要,可以看这一篇博客:idea中mybatisPlus自增主键失效
创建表

DROP TABLE IF EXISTS `duck_message`;
CREATE TABLE `duck_message`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `message_title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '标题',
  `message_content` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '内容',
  `message_images` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '图片地址',
  `status` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '状态(L-留言榜,P-排行榜,T-推荐榜)',
  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
  `creation_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  `user_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户id',
  `type_push` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '是否上榜(Y-上榜,N-不上榜)',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '鸭友榜表' ROW_FORMAT = Dynamic;

SET FOREIGN_KEY_CHECKS = 1;

注意:longtext不必设置长度
在这里插入图片描述

代码很简单,就是个插入语句而已:创建一个Springboot项目,使用mybatis-plus自动生成。然后插入表数据即可。
如何自动生成,可以看下这篇博客:mybatisPlus自动生成代码
我使用富文本进行调用的,可以参考博客:summernote富文本使用。也可以使用apipost进行测试,下面有介绍。
完整代码

getInputValue() {
      var that = this;
      // 获取summernote输入的值的方法 $('#summernote2').summernote('code')
      that.contant = $("#summernote2").summernote("code");
      console.log(that.contant);
      that.axios({
        url: "http://localhost:8081/duckMessage/text",
        method: "POST",
        data: that.contant,
        headers: {
          // "Content-Type": "application/x-www-form-urlencoded",
          "Content-Type": "text/plain",
        },
        success: function (data) {
          console.log("返回的数据" + data.data);
        },
      });
    },
//Controller层
//测试,可以插入最大插入数据
@PostMapping("/text")
    public Result textInsert(@RequestBody String contant){
    System.out.println("值:"+contant);
    int num= duckMessageService.textInsert(contant);
    return new Result("200",num,"成功");
}
//serveceimp层
@Override
    public int textInsert(String contant) {
    DuckMessage duckMessage = new DuckMessage().setMessageContent(contant).setCreationTime(new Date());
	int num = duckMessageMapper.insert(duckMessage);
	return num;
}

接近78万个字
在这里插入图片描述
我是用的Summernote富文本进行尝试调用的,文件显示2.3M(也可以直接使用Apipost调用)
在这里插入图片描述

后台打印的日志
在这里插入图片描述
表数据

在这里插入图片描述

我准备再翻一番,但是复制粘贴,显示速度太慢。不再尝试。
在这里插入图片描述

如果想要自己尝试,使用Apipost工具,调用接口测试即可

官方下载地址:https://www.apipost.cn/
注意:必须下载客户端才能在本地调试,网页端只支持非本地接口
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

表数据
在这里插入图片描述

mysql类型

数字类型
在这里插入图片描述

辨別Null与Not Null :Null为允许储存空值(Null)

数值
在这里插入图片描述日期时间
在这里插入图片描述

如果感觉有用点个关注,一键三连吧!蟹蟹!!!
在这里插入图片描述

各位看官》创作不易,点个赞!!!
诸君共勉:万事开头难,只愿肯放弃。

免责声明:本文章仅用于学习参考

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/176311.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++:类的构造函数与析构函数

目录 一.前言 二.类的构造函数 1.构造函数基本概念与语法细则 2.编译器默认生成的无参构造函数和自定义构造函数 3.构造函数的特性(可重载) 4.关于构造函数的注意事项 5.构造函数的应用示例: 三.类的拷贝构造函数 1.拷贝构造函数基本概念 2.编译器默认生成…

零入门容器云实战之文章目录列表

建议: 1、网盘资源 零入门容器云网络实战 链接: https://pan.baidu.com/s/1nPLRkAwjItAHmtEU2T1F4g 提取码: rrpd 2、技术交流群 QQ群: 342498897 3、发布说明 绿色字体, 表示已经发布,可以观看 灰色字体, 表示未发布 发布频…

汽车研究(科普)

什么是汽车的排量,1.5L与2.0T又是指什么? 汽车的动力来源于燃油在气缸内爆燃产生的力,力推动活塞连着曲轴传到离合变速箱,通过后桥作用让车轮转,排量1.5、2.0指的就是气缸的容量,如果是带增压的用字母T表示&#xff0…

JQuery总结(二)

属性操作&#xff1a; 文本操作&#xff1a; <div><span>内容</span></div><input type"text" value"请输入内容"> </body> <script src"jQuery.min.js"></script> <script > console.lo…

目录 行盒的盒模型 显著特点 行块盒 空白折叠 可替换元素 和 非可替换元素 分页例子 display:inline-block object-fit

目录行盒的盒模型行盒显著特点行块盒空白折叠可替换元素 和 非可替换元素行盒的盒模型 常见的行盒&#xff1a;包含具体内容的元素 span、strong、em、i、img、video、audio 这些行盒模型也都有 content、padding、border、margin的 但它们与块盒还是有明显区别 行盒显著特…

【Leetcode面试常见题目题解】7. 删除链表的倒数第 N 个结点

前言 本文是LC第19题&#xff1a;删除链表的倒数第 N 个结点 题目描述 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 限制&#xff1a; 链表中结点的数目为 sz 1 < sz < 30 0 < Node.val < 100 1 < n < sz 进…

使用账号激活MATLAB软件

前言 很多学校购买了MATLAB软件的使用权&#xff0c;在校师生只需要使用自己的学校域名的邮箱&#xff0c;注册一个MATLAB账号即可免费使用MATLAB产品&#xff0c;再也不用各种去网上找破解资源了。 账号注册 访问账户注册页面&#xff1a; 创建 MathWorks 帐户然后填写账户信…

三、pyhon基础语法进阶篇(黑马程序猿-python学习记录)

黑马程序猿的python学习视频&#xff1a;https://www.bilibili.com/video/BV1qW4y1a7fU/ 目录 一、文件操作 一、 文件的读取 1. 打开文件open() 2. 读取文件10个字节read(10) 3. 读取文件全部信息read() 4. 读取文件readLines() 5. 读取文件readLine() 6. for循环读取…

【HTML】我用“一行“代码为CSDN博客主页挂上灯笼(附源码)

&#x1f482;作者简介&#xff1a; THUNDER王&#xff0c;一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读&#xff0c;同时任汉硕云&#xff08;广东&#xff09;科技有限公司ABAP开发顾问。在学习工作中&#xff0c;我通常使用偏后…

第一章 ArcMap、ArcCatalog、 ArcToolbox基础入门操作

文章目录第一节 ArcMap入门1 界面的基本介绍2 加载数据3 添加图层4 数据表5 内容列表5.1 按绘制顺序5.2 按源5.3 按可见性5.4 按可选性第二节 ArcCatalog入门1 界面和功能介绍2 文件夹连接3 新建数据4 修改字段第三节 ArcToolbox操作入门1 界面基本介绍2 查找工具3 查看帮助4 工…

汇编【王爽】实验8、9

实验8 分析一个奇怪的程序 程序从startstartstart入口处开始执行&#xff0c;一个nop指令占一个字节并表示No operation&#xff0c;此处用了两个nop指令的目的是在sss处预留两个字节的空间&#xff0c;程序执行mov cs:[di], ax之后sss处的两个字节被试图写入jmp short s1&…

【数据结构】二叉树的基本知识

目录前言一、树1、树的相关概念&#xff08;1&#xff09;结点&#xff08;2&#xff09;结点的度&#xff08;3&#xff09;叶结点&#xff08;4&#xff09;分支结点&#xff08;5&#xff09;父亲结点&#xff08;6&#xff09;子节点&#xff08;7&#xff09;树的度&#…

Spring笔记上(基于XML配置)

新年快乐。 文章目录一、Spring概述1. 为什么要用Spring框架&#xff1f;2. Spring介绍二、IOC/DI快速入门1. IOC控制反转2. DI依赖注入三、Bean的配置1. Bean的基础配置2. Bean的别名配置3. Bean的作用范围配置四、Bean的实例化1. 构造方法方式2. 静态工厂方式3. 实例工厂方式…

Java面试题,JVM相关问题

JVM相关问题一 、JDK、JRE、JVM二、内存管理三、GC如何判断对象可以被回收&#xff08;这是JVM的基础&#xff09;一 、JDK、JRE、JVM JDK&#xff1a;Java Development Kit【Java开发工具】&#xff0c;提供给Java开发人员来使用的。JRE&#xff1a;Java Runtime Environment…

Solid Edge 放样使用引导曲线

放样用引导曲线的时候被一个错误提示卡了挺长时间——“选来用作路径或横截面的所有边必须连接在一起”&#xff0c;所以记录一下遇到的问题。基础的操作可以去看帮助文件https://docs.sw.siemens.com/zh-CN/doc/246738425/PL20211001099989437.feature_modeling/feat12c&#…

Sprig框架集成(SSM框架) | Sping+SpringMVC+Mybatis

SSM框架 SSM是spingspringMVCmybatis集成的框架&#xff1a;标准的MVC模式&#xff0c;整个系统划分为表现层&#xff0c;controller层&#xff0c;service层&#xff0c;DAO层四层 Spring&#xff08;业务层&#xff09; Spring就像是整个项目中装配bean的大工厂&#xff0c;在…

MySQL server options

介绍 MySQL安装部署时&#xff0c;经常会关注一些参数是否合理。其实这些参数分为两类型。环境中调整的绝大部分是引擎层方面的。服务层参数&#xff0c;就是mysqld服务启动时的参数&#xff0c;如&#xff1a;datadir&#xff0c;port&#xff0c;socket之类的的&#xff0c;…

多重背包问题——单调队列优化

一、多重背包问题 我们在之前的文章中曾经讲解过多重背包问题&#xff0c;当时我们讲解了两种方法&#xff0c;一种方法就是三重循环&#xff0c;这种方法最为朴素好想。但是这种方法的时间复杂度非常高&#xff0c;后来我们想到了二进制优化的方式。那么今天我们将再介绍一种…

Java实习------Java基础2

基础语法基本数据类型 熟悉Java有哪些数据类型定义&#xff1a;Java语言是强类型语言&#xff0c;对于每一种数据都定义了明确的具体的数据类型&#xff0c;在内存中分配了不同大小的内存空间。Java语言提供了八种基本类型。六种数字类型&#xff08;四个整数型&#xff0c;两个…

18. 循环语句while,for语句的详解

python 中的循环语句只有 for 和 while两种&#xff0c;没有do…while循环&#xff0c;这与c/c是不同的。 1. while循环 (1) 语法格式 while <condition>&#xff1a;...# demo, 使用while循环累加1-100的和。 sum 0 counter 1 while counter < 100:sum counterco…