首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL 如何存储长度很长数据字段

最近,在工作中遇到了MySQL中如何存储长度较长字段类型问题,于是花了一周多时间抽空学习了一下,并且记录下来。...MySQL大致逻辑存储结构在这篇文章中有介绍,做为基本概念:InnoDB 逻辑存储结构 注:文中所指大数据指的是长度较长数据字段,包括varchar/varbinay/text/blob。...说了这么多,总结下Compact格式存储大数据缺点: 由于存在768字节前缀在Page页,所以会存在能定义一个字段存储11000字节,但是不能定义11个字段,每个字段存储1000字节”bug”。...将列放入外部存储标准 当一行中数据不能在数据页中放下,需要申请外部存储页时,MySQL需要决定将哪一列数据放到外部存储页,遵循规则如下: 长度固定字段不会被放到外部存储页(int、char(...当有多个大数据字段满足上面条件,需要被放到外部存储页时,MySQL会优先选择大字段放到外部存储页,因为这样可以最大限度省下数据页空间,使得更多字段能够被放到数据页。

5.5K20
您找到你想要的搜索结果了吗?
是的
没有找到

MySQL字段类型_mysql数据库字段类型

大家好,又见面了,我是你们朋友全栈君。 前言: 要了解一个数据库,我们必须了解其支持数据类型。MySQL 支持大量字段类型,其中常用也有很多。...DECIMAL 从 MySQL 5.1 引入,列声明语法是 DECIMAL(M,D) 。...例如字段 salary DECIMAL(5,2),能够存储具有五位数字和两位小数任何值,因此可以存储在salary列中范围是从-999.99到999.99。...3.日期时间类型 MySQL支持日期和时间类型有 YEAR 、TIME 、DATE 、DATETIME 、TIMESTAMP,几种类型比较如下: 涉及到日期和时间字段类型选择时,根据存储需求选择合适类型即可...总结: 本篇文章主要介绍了 MySQL 中常用字段类型,平时用到字段类型基本都在这里了,以一张思维导图总结如下: 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

19.3K10

mysql密码字段类型_MySQL 字段类型

MySQL 以一个可选显示宽度指示器形式对 SQL 标准进行扩展(如 INT(6),6即是其宽度指示器,该宽度指示器并不会影响int列存储字段大小,也就是说,超过6位它不会自动截取,依然会存储,只有超过它本身存储范围才会截取...万一我们需要对一个字段存储一个超出许可范围数字,MySQL 会根据允许范围最接近它一端截短后再进行存储。还有一个比较特别的地方是,MySQL 会在不合规定值插入表前自动修改为 0。...unsigned 和 zerofill UNSIGNED 修饰符规定字段只保存正值,即无符号,而mysql字段默认是有符号。...因为不需要保存数字正、负符号,可以在储时节约一个”位”空间(即翻一倍)。从而增大这个字段可以存储范围。...TEXT 和 BLOB 类型 对于字段长度要求超过 255 个情况下,MySQL 提供了 TEXT 和 BLOB 两种类型。根据存储数据大小,它们都有不同子类型。

14.4K20

PHP操作MySQL中BLOB字段方法示例【存储文本与图片】

本文实例讲述了PHP操作MySQL中BLOB字段方法。...分享给大家供大家参考,具体如下: 1、M/【参考文章时候,并不建议直接复制,应该尽量地读懂】/ySQL中BLOB字段类型 BLOB类型字段用于存储二进制数据。...MySQL中,BLOB是个类型系列,包括:TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间唯一区别是在存储文件最大大小上不同。...MySQL四种BLOB类型 TinyBlob:  最大 255字节 Blob:      最大 65K MediumBlob:最大 16M LongBlob:  最大 4G 注意:如果你存储文件过大...($query); echo $result["C/【本文中一些MYSQL版本可能是以前MYSQL建议使用5.7以上版本】/OMPRESS_CONTENT"]; ?

3.2K30

数据表多字段存储值与单字段存储json值区别

使用场景 电商系统中商品参数数据,假设包括以下几项 品牌 产地 尺寸 生产日期 保质期 重量 在设计数据表结构时候,可以选择2种方式 第1种是分别创建不同字段存储对应参数值 第2种是建立一个字段用于存储参数...多字段存储数据优点 1、查询性能:当需要经常对数据库中特定字段进行查询、排序或过滤时,使用多个字段通常能提供更好性能。也可以利用索引来加速这些操作。...多字段存储数据缺点 1、灵活性:如果数据结构经常变化,可能需要频繁地修改数据库表结构,可能会涉及复杂迁移过程。 2、空间效率:对于包含大量空值或重复值字段,可能不如JSON存储方式节省空间。...单字段存储JSON值优点 1、灵活性:可以轻松地存储和查询非结构化或半结构化数据,无需事先定义所有可能字段。当数据结构发生变化时,不需要修改数据库表结构。...在 Mysql 高版本中已提供了对JSON原生支持,包括索引、查询优化等功能,这能一定程序上减轻使用JSON字段时可能遇到一些性能问题,但其它方面的缺点仍有待解决。

9131

Mysql Explain主要字段

当联合主键或唯一索引所有字段跟常量值比较时,join类型为const。其他数据库也叫做唯一索引扫描 3、eq_ref 多表join时,对于来自前面表每一行,在当前表中只能找到一行。...这可能是除了system和const之外最好类型。 当主键或唯一非NULL索引所有字段都被用作join联接时会使用此类型。 eq_r ef可用于使用’='操作符作比较索引列。...比较值可以是常量,也可以是使用在此表之前读取表达式。 相对于下面的ref区别就是它使用唯一索引,即主键或唯一索引,而ref使用是非唯一索引或者普通索引。...要注意,全文索引优先级很高,若全文索引和普通索引同时存在时,mysql不管代价,优先选择使用全文索引 6、ref_or_null 跟ref类型类似,只是增加了null值比较。实际用不多。...Extra 字段显示, 常见有以下几种内容: distinct:在select部分使用了distinc关键字 Using filesort:当 Extra 中有 Using filesort

1.4K20

MySQLjson字段

// MySQLjson字段 // MySQL5.7.8中引入了json字段,这种类型字段使用频率比较低,但是在实际操作中,有些业务仍然在用,我们以此为例,介绍下json字段操作方法...,info是json字段,插入了三条数据,如上: mysql> select * from test1 where json_extract(info,"$.age")>=30; +------+---...其中: 1、$符号代表是json根目录, 2、我们使用$.age相当于取出来了json中age字段, 3、当然,在函数最前面,应该写上字段名字info 下面来看json中常用函数: a、json_valid...判断是否是json字段,如果是,返回1,如果不是,返回0 mysql> select json_valid(2); +---------------+ | json_valid(2) | +------...,如果传入了字符串2,那么,返回结果是1 b、json_keys传回执行json字段最上一层key值 mysql> select json_keys('{"name":"yeyz","score":100

9K20

MySQL修改表字段

MySQL修改表字段 MySQL 修改表字段方法有两种: ALTER TABLE MODIFY COLUMN。...其语法如下: ALTER TABLE 表名 MODIFY COLUMN 字段字段类型; 其中,表名 表示要修改表名,字段名 表示要修改字段名,字段类型 表示修改后字段类型。...其语法如下: ALTER TABLE 表名 MODIFY COLUMN 字段字段类型 [属性]; 其中,表名 表示要修改表名,字段名 表示要修改字段名,字段类型 表示修改后字段类型,属性 表示修改后字段属性...0; 需要注意是,如果修改表字段数据类型或长度,可能会造成数据丢失或者修改失败。...因此,在进行字段类型修改时,需要先备份数据,避免出现意外情况。

5.4K10

MySQL 字段操作

看完本文,你能够优雅地设计一张有意义表; 一、字段操作 1.添加字段 (add) alter table add 字段名 数据类型; desc ; 2.修改字段数据类型 (modify...) alter table modify ; 3.字段重命名 (change) #新字段名后要加上字段数据类型,否则报错 alter table change...,用于保证数据完整性,从而符合该字段达到我们期望效果,如果插入数据不满足约束要求,数据库管理系统就会拒绝执行SQL 操作 常见约束有 约束条件 含义 NOT NULL 约束字段值不能为空 DEFAULT...约束字段默认值 UNIQUE KEY 约束字段值唯一 PRIMARY KEY 约束字段为主键,唯一标识 AUTO_INCREMENT 字段值自动增加 1....主键约束(primary key) 主键约束字段不能为空,不能重复 #创建表时候,添加主键; CREATE TABLE (字段名 数据类型 PRIMARY KEY); 复合主键: 由多个字段组成主键

9.9K30

MySQL-存储引擎-创建表-字段数据类型-严格模式-字段约束-键-02

常见几个存储引擎 InnoDB MySQL 5.5 开始 默认存储引变更为 InnoDB 默认存储引擎,支持事务,支持行锁,表锁,外键,比较安全 因为 InnoDB 在存储数据时候,更加安全,...,会自上往下寻找非空且唯一约束字段自动将其升级为主键字段 当你表中没有任何约束(主键也是约束)字段时候,InnoDB会使用内部一个隐藏字段作为主键,我们无法利用该主键 MyISAM 老版本用存储引擎...建表只会建一个文件: frm表结构,数据不存储 感兴趣小伙伴可以点这个链接了解一下:MySQLBlackHole引擎在主从架构中作用 引擎对应本地化文件 ?...,发现数据也能正常存储进去,只是 mysql 帮我们自动截取了最大长度。...char 类型字段时候,硬盘上确确实实存是固定长度数据,但是再取出来那一瞬间mysql 会自动将填充空格去除 ?

2.4K30

MySQL存储过程_MySQL创建存储过程

delimiter 指定SQL语句结束符 存储过程中变量 在MySQL中,变量一般可分为分为三种类型: 系统变量、用户定义变量、局部变量; 一、系统变量 系统变量是MySQL服务器系统自身提供...注意点: mysql服务重新启动之后,所设置全局参数会失效,要想不失效,可以在 /etc/my.cnf 中配置; 全局变量(GLOBAL): 全局变量针对于所有的会话; 会话变量(SESSION):...2、使用select into 方式给变量赋值 SELECT @var_name := expr [, @var_name := expr] ... ; SELECT 字段名 INTO @var_name...2、定义方式 DECLARE 变量名 变量类型 [DEFAULT ... ] ; 变量类型就是数据库字段类型,可选值包括:INT、BIGINT、CHAR、VARCHAR、DATE、TIME等。...循环语句在编程中经常被用到,常用于对批量数据进行循环处理,在mysql存储过程中,也提供了几种常用循环语句,包括:while循环,repeat循环,和loop循环; 1、while循环语句 while

22.2K21

MySQL字段知识科普

为什么varchar默认长度是255 1、 mysql要求varchar一个行定义长度不能超过65535bytes,这个大小包括了字段占用空间在内,text和blob等大字段除外(注: 单行最大限制指就是一张表中所有字段所设置长度总和不得超过...65535字节) 2、 InnoDB存储引擎表索引前缀长度最长是: 767字节,如果需要创建索引,不能超过这个长度。...、总结: varchar(255)不是最优字符长度,最优需要按照具体情况来,但是这个长度可以保证你能少出错一个不错默认值 int(20)中20表示什么意思 1、是指显示字符长度。...20表示最大显示宽度为20,但仍占4字节存储存储范围不变; 2、不影响内部存储,只是影响带 zerofill 定义 int 时,前面补多少个 0,易于报表展示 3、对大多数应用没有意义,只是规定一些工具用来显示字符个数...;int(1)和int(20)存储和计算均一样 额外科普   数据库删除指令中,Drop、Truncate、Delete区别在哪里?

84910

金融系统中正确金额计算及存储方式

昨天微信群里在讨论金额计算及存储的话题,今天特来结贴一下。 经典精度丢失问题 Java中类型float、double用来做计算会有精度丢失问题,下面来看下面的示例。...正确结果是: 0.06999999999999999 为什么是这样? 浮点数可能丢失精度,浮点十进制数通常没有完全相同二进制表示形式,这是CPU所采用浮点数据表示形式副作用。....subtract(new BigDecimal(String.valueOf(feeAmount))); System.out.println(tradeAmount); } 总结 金额运算尽量使用...数据库存储金额,一般有整型和浮点型两种存储方式。如果是有汇率转换,建议使用浮点数decimal进行存储,可以灵活控制精度,decimal直接对应java类型BigDecimal。...当然,用整数存储分这种形式也可以,转账时候单位为元而如果忘了转换分为元,那就悲剧了。

2.7K90

MySQL存储字段是不区分大小写,你知道吗?

00 简单回顾 之前写过一篇关于mysql 对表大小写敏感问题(你有遇到过MySQL因大小写敏感导致问题吗),其实在mysql字段存储内容是不区分大小写,本篇进行简单总结。...02 解决方案 因为默认情况下字段内容是不区分大小写,也即大小写不敏感。所以解决方案就是要新增字段内容校验规则。 使用mysql BINARY 关键字使搜索区分大小写。...这两种查看表详情,本质上都是 在字段上 加上了 COLLATE utf8_bin。 03 总结 字段大小写由mysql校对规则来控制。提到校对规则,就不得不说字符集。...比如 utf8字符集,,如下表: 1)utf8_bin:utf8_bin将字符串中每一个字符用二进制数据存储,区分大小写。...通过上一篇和这一篇内容,详细大家对mysql对大小写敏感问题也有一定认识了,在实际开发中,库和表名最好使用小写字母,注意字段存储内容大写问题。

2.4K30
领券