说明:本文是作者对MySQL数据库数据存储类型的小小总结。...2、DECIMAL/NUMERIC DECIMAL与NUMERIC一样,二进制形式存储数字类型,如DECIMAL(4,2)表示存储一个小数点后两位总共4位精度的数字,范围是-99.99~99.99。...VARCHAR(10)表示最大存储10个字符长度的字符串,存储'PHP'时只分配3个存储空间,节约存储空间。 默认使用InnoDB引擎时,使用VARCHAR比较好。一般用VARCHAR类型比较多。...TEXT存储大数据量的字符串数据,TEXT分为:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT,根据存储文本最大长度分类。...4、ENUM 枚举类型,每一个值都有对应的索引index。最大两个字节存储,65535个不同成员。
# MySQL 表类型和存储引擎 mysql 表类型和存储引擎 基本介绍 主要的存储引擎/表类型特点 细节说明 三种存储引擎表使用案例 如何选择表的存储引擎 # mysql 表类型和存储引擎 # 基本介绍...# 主要的存储引擎/表类型特点 特点 Myism InnoDB Memory Archive 批量插入的速度 高 底 高 非常高 事务安全 支持 全文索引 支持 锁机制 表锁 行锁 表锁...MEMORY存储引擎使用存在内存中的内容来创建表。每个MEMORY表只实际对应-个磁盘文件。MEMORY类型的表访问非常得快,因为它的数据是放在内存中的,并且默认使用HASH索引。...但是一旦MySQL服务关闭,表中的数据就会丢失掉,表的结构还在。...-- 1.数据存储在内存中[关闭mysql服务,数据丢失,但是表结构还在] -- 2.执行速度很快(没有IO读写) 3.默认支持索引(hash表) CREATE TABLE t29( id INT
文本字符串类型 在实际的项目中,经常遇到一种数据,就是字符串数据。...MySQL中,文本字符串总体上分为CHAR、VARCHAR、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT、ENUM、SET等类型。 [在这里插入图片描述] 1....CHAR与VARCHAR类型 CHAR和VARCHAR类型都可以存储比较短的字符串。...检索VARCHAR类型的字段数据时,会保留数据尾部的空格。VARCHAR类型的字段所占用的存储空间为字符串实际长度加1个字节。...TEXT类型 在MySQL中,TEXT用来保存文本类型的字符串,总共包含4种类型,分别为TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT 类型。
总结 ---- 前言 使用MySQL数据库存储数据时,不同的数据类型决定了MySQL存储数据方式的不同。...MySQL数据库提供了多种数据类型,其中包括数字类型、时间和日期类型、字符串类型。...本期我们一起来学习MySQL的数据类型吧~ ---- 数字类型 在数据库中,经常需要存储一些数字,适合用数字类型来保存。数字类型包括整数类型、浮点数类型、定点数类型、BIT(位)类型。...浮点数类型 在MySQL中,存储的小数都是使用浮点数或定点数来表示的。浮点数分为单精度浮点数类型(float)和双精度浮点数类型(double)。...不同的是,VARCHAR可以存储可变长度的字符串。
使用Text MySQL提供四种TEXT类型:TINYTEXT,TEXT,MEDIUMTEXT和LONGTEXT。...下面显示每个TEXT类型的大小,假设我们使用一个字符集,该字符集需要1个字节来存储字符。...TINYTEXT - 1个字节(255个字符) TINYTEXT可以存储的最大字符是255(2 ^ 8 = 256,1字节开销)。...需要少于255个字符的列应该使用TINYTEXT类型,长度不一致,不需要排序,例如:博文摘录,文章摘要等。...MEDIUMTEXT可用于存储相当大的文本数据,如书籍文本,白皮书等。
MySQL可以将一个字符串列更改为不同于CREATE TABLE或ALTER TABLE语句中所给出的类型。...MySQL 5.1字符串数据类型包括部分在MySQL 4.1之前的版本中没有的特性: · 许多字符串数据类型的列定义可以包括指定字符集的CHARACTER SET属性,也可能包括校对规则...MySQL允许创建类型CHAR(0)的列。这主要用于必须有一个列但实际上不使用值的旧版本的应用程序相兼容。...·BINARY(M) BINARY类型类似于CHAR类型,但保存二进制字节字符串而不是非二进制字符串。...·VARBINARY(M) VARBINARY类型类似于VARCHAR类型,但保存二进制字节字符串而不是非二进制字符串。 ·TINYBLOB 最大长度为255(28–1)字节的BLOB列。
2)面试题:varchar(5)和varchar(200)来存储’mysql’字符串性能相同吗?...答案是有区别的,虽然它们都不超过255,只需要5个字符加一个字节来存储就够了,但是mysql为了更有效的优化查询,在内存中对字符串使用的是固定的宽度,所以如果把列的宽度设置得太长,就会消耗内存,影响性能...3.varchar的适用场景 1)字符串列的最大长度比平均长度大很多的情况 2)字符串列很少被更新 3)使用了多字节字符集存储字符串,例如utf-8 3.char类型的存储特点 1)char类型是定长的...2)字符串存储在char类型的列中会删除末尾的空格,而字符串存在varchar类型中时末尾的空格不会被删除 3)char类型的最大宽度为255 4.char类型的使用场景 1)char适合存储长度近似的值...,例如MD5值,身份证,手机号等 2)char类型适合存储短字符串,例如性别,因为varchar还要多出一个字节来存储字符串长度 3)char类型适合存储经常更新的字符串列
From: mysql分别用数字INT和中文varchar做索引查询效率上差多少 性能相当 mysql中区别性能的是采用哪种索引方式,而不是索引的数据类型。...有索引:char与varchar性能差不多,int速度稍快18% 在数据存储、读写方面,整数与等长字符串相同,varchar额外多了一个字节所以性能可能会些许影响(1/n)。...在数据运算、对比方面,整数得益于原生支持,因此会比字符串稍快一丁点。 若采用索引,所谓整数、字符串的性能差距更是微乎其微。...在实际开发中,许多开发者经常使用char(1)、char(4)这样的字符串表示类型枚举,这种做法在我看来属于最佳方案,因为这种做法在存储空间、运算性能、可读性、可维护性、可扩展性方面,远胜于int、enum...但是如果你在创建索引的时候定义其类型为 Hash,MySql 并不会报错,而且你通过 SHOW CREATE TABLE 查看该索引也是 Hash,只不过该索引实际上还是 B-Tree。
MySQL存储过程可以用于分割字符串,下面就为您详细介绍这种MySQL存储过程的用法,供您参考学习之用。 ...substring_index(f_string,f_delimiter,f_order)),f_delimiter,1)); return result; END$$ DELIMITER; # 存储过程...-+ | apple | | banana | | orange | | pears | | grape | +--------+ 5 rows in set mysql...","); # 将查询的结果作为其他查询的条件来使用 select * from fruit where in(select * from tmp_split); 以上就是利用MySQL...存储过程分割字符串的方法介绍。
DECLARE t1 int default date_format(DATE_ADD(NOW(),INTERVAL 1 MONTH),"%Y%m")...
mysql对数值类型字符串进行排序 排序 有时会遇到这种需求,对数值型的字符串进行排序 在默认情况下使用order by 字段名称 desc/asc 进行排序的时候,mysql进行的排序规则是按照ASCII...就会出现比如要排序的字段值是1,2,3,11,12,排序完的结果会变成1,11,12,2,3, 很显然,这不是我们想要的,通过查阅资料,发现了一下三种方式可以使用 select * from 表名 ORDER BY `数值型字符串字段名...`*1; select * from 表名 ORDER BY `数值型字符串字段名`+0; select * from 表名 ORDER BY CAST(数值型字符串字段名 AS DECIMAL
mysql中有哪些字符串类型 说明 1、char和varchar都用来保存MySQL中的短字符串。varchar列中的值是可变长字符串。...两者的主要区别在于存储方式的不同:char列的长度固定为创建表中声明的长度。char在检索时会删除尾部的空格,而varchar则不会。 2、binary和varbinary存储二进制字符串。...)); --向表中插入数据('a ','a ') mysql> insert into tbc values('a ','a '); --查看字段值长度 mysql> select length...(bc),length(vbc) from tbc; 以上就是mysql中字符串类型的介绍,希望对大家有所帮助。...更多mysql学习指路:MySQL 推荐操作系统:windows7系统、mysql5.8、DELL G3电脑 收藏 | 0点赞 | 0打赏
数据表类型(存储引擎) 数据库引擎用于存储、处理和保护数据的核心服务,利用数据库引擎可控制访问权限并快速处理事务,利用数据库引擎创建用于联机事务处理或联机分析处理数据的关系数据库,包括创建用于存储数据的表和用于查看...、管理、保护数据安全的数据库对象(索引、视图、存储过程)。...常见引擎比对 各引擎特点 Myisam mysql默认存储引擎,在磁盘上存储成三个文件.frm(存储表定义).MYD(MYData存储数据)。...Mysql运行时Innodb会在内存中建立缓冲池用于缓冲数据和索引,该引擎不支持fulltext类型索引且没有保存表的行数,select count(*) from table 血药扫全表。...Innodb必须有主键如果没有显示指定Mysql会自动选择一个唯一标识的数据记录为主键。 聚集索引按主键搜索效率十分高效,辅助索引必须检索两遍。
本文主要讲mysql的时间类型在磁盘上的存储结构(innodb)时间类型mysql时间类型主要有如下几种 (5.6.4之后的版本)类型占用空间字节序取值范围date3大端'1000-01-01' to...UTC to '2038-01-19 03:14:07.999999' N的取值来自于n(fractional-seconds), 关系如下N = int((n+1)/2)nN001,213.425,63存储结构.../13)month = int(year_month%13)timestamp这个就是秒数(uint32), 直接取值即可int.from_bytes(bdata[:4],'big')分秒如果固定时间类型后面还有数据...fraction)大端,直接取值即可.比如:fraction = int.from_bytes(bdata[4:],'big') if len(bdata)>4 else None参考: https://dev.mysql.com
字符串类型 MySQL 提供了 8 个基本的字符串类型,可以存储的范围从简单的一个字符到巨大的文本块或二进制字符串数据。...而 VARCHAR 类型把它视为最大值并且只使用存储字符串实际需要的长度(增加一个额外字节来存储字符串本身的长度)来存储值。...MySQL 用 DATE 和 TEAR 类型存储简单的日期值,使用 TIME 类型存储时间值。...一个 ENUM 类型最多可以包含 65536 个元素,其中一个元素被 MySQL 保留,用来存储错误信息,这个错误值用索引 0 或者一个空字符串表示。...并且与 ENUM 类型相同的是任何试图在 SET 类型字段中插入非预定义的值都会使 MySQL 插入一个空字符串。
二进制字符串类型 MySQL中的二进制字符串类型主要存储一些二进制数据,比如可以存储图片、音频和视频等二进制数据。...MySQL中支持的二进制字符串类型主要包括BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB类型。 1....BINARY与VARBINARY类型 BINARY和VARBINARY类似于CHAR和VARCHAR,只是它们存储的是二进制字符串。...MySQL中的BLOB类型包括TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB 4种类型,它们可容纳值的最大长度不同。可以存储一个二进制的大对象,比如图片、音频和视频等。...需要注意的是,在实际工作中,往往不会在MySQL数据库中使用BLOB类型存储大对象数据,通常会将图片、音频和视频文件存储到服务器的磁盘上,并将图片、音频和视频的访问路径存储到MySQL中。
在 MySQL 中,选择合适的[数据类型]对于数据库的存储效率和查询性能至关重要。...MySQL 提供了**字符串(String)、数字(Numeric)和日期(Date & Time)**三大类数据类型,每种类型又有不同的子类型,以适应不同的业务需求。1....字符串(String)数据类型[字符串类型]用于存储文本数据,主要分为定长(CHAR)和变长(VARCHAR) ,以及大文本(TEXT 和 BLOB) 。...1.1 定长与变长字符串数据类型存储方式特点适用场景CHAR(n)定长存储(不足补空格)访问速度快,占用空间固定适用于固定长度的数据,如国家代码、身份证号VARCHAR(n)变长存储(按需分配空间)节省存储空间...时间戳数据尽量使用 TIMESTAMP 代替 DATETIME,节省存储空间。总结MySQL 提供了多种数据类型,每种类型都有其适用场景。
数据表类型(存储引擎) 数据库引擎用于存储、处理和保护数据的核心服务,利用数据库引擎可控制访问权限并快速处理事务,利用数据库引擎创建用于联机事务处理或联机分析处理数据的关系数据库,包括创建用于存储数据的表和用于查看...数据压缩 支持 - - - 支持 空间使用 低 高 N/A 低 非常低 内存使用 低 高 中 低 低 批量插入速度 高 低 高 高 非常高 外键支持 - 支持 - - - 各引擎特点 Myisam mysql...Mysql运行时Innodb会在内存中建立缓冲池用于缓冲数据和索引,该引擎不支持fulltext类型索引且没有保存表的行数,select count(*) from table 血药扫全表。...3.Innodb必须有主键如果没有显示指定Mysql会自动选择一个唯一标识的数据记录为主键。 4.聚集索引按主键搜索效率十分高效,辅助索引必须检索两遍。...各个树比对 各个树比对 类型 特点 BTree 每个节点只存储一个关键字,等于命中,小于左节点,大于右节点 B-Tree 多路搜索树,每个节点存储M/2到M个关键字,非叶子节点存储指向关键字范围的子节点
VARCHAR和CHAR类型VARCHAR类型用于存储可变长字符串。它比定长类型更节省空间。...有一种情况例外,如果MySQL表使用ROW_FORMAT=FIXED创建的话,每一行都会使用定长存储,这会很浪费空间。...VARCHAR需要使用1或2个额外字节记录字符串长度,如果列的最大长度小于或者等于255字节,则只使用1个字节表示,否则使用2个字节表示。例如一个VARCHAR(10)需要使用11个字节的存储空间。...字符串列的最大长度比平均长度大很多。列的更新很少,所以碎片不是问题了。使用UTF-8这样复杂的字符集,每个字符都使用不同的字节数进行存储。...CHAR类型是定长的,当存储CHAR值,MySQL会删除所有的末尾空格。CHAR值会根据需要采用空格填充的方式方便比较。它适合存储很短的字符串。
BLOB和TEXT类型 BLOB和TEXT都是为存储很大的数据而设计的字符串数据类型,分别采用二进制和字符串方式存储。...当BLOB和TEXT值太大时,InnoDB会使用专门的“外部”存储区域来进行存储,此时每个值在行内需要1~4个字节存储一个指针,然后在外部存储区域存储实际的值。...BLOB类型存储的是二进制数据,没有排序规则或字符集,而TEXT类型有字符集和排序规则。...最好的解决办法就是尽量避免使用BLOB和TEXT类型。如果实在无法避免,就在所有用到BLOB字段的地方都使用SUBSTRING(column,length)将列值转换为字符串。...但是要确保截取的字符串足够短,不会使临时表的大小超过max_heap_table_size或者tmp_table_size,超过以后MySQL会将内存临时表转换成磁盘临时表。