MySQL有多少张唱片?
这个问题应该从密码规范、字符和字节的定义和区别、MySQL的数据类型和长度、MySQL的数据库行格式等。
MySQL
Unicode密码在Unicode中,每个字符编码的值称为代码点。
在Unicode中,代码点的总范围是x0到x10ffff,总共有1114112个代码点。
代码点的最大值为x10ffff,对应于二进制的有21位。如果我们把2^16个值分成一个组,Unicode总共可以分成17个部分。每个部分称为一个平面,每个平面有65536(2^16)个代码点。
飞机号码 | 代码点范围(十六进制) | 姓名缩写 | 名称 |
飞机0 | 0000–FFFF | 骨形态发生蛋白 | 基本多语言平面 |
飞机1 | 10000–1fff | SMP | 补充多语言平面 |
飞机2 | 20000–2fff | 小口喝 | 辅助表意平面 |
飞机3 | 30000–3FFFF | 提示 | 第三表意平面 |
飞机4-13 | 40000–DFFFF | -(未分配) | -(未分配) |
飞机14 | E0000–EFFF | SSP | 辅助专用飞机 |
飞机15-16 | F0000–10FFFF | SPUA-A/B | 补充私人用途面积图Private使用区域平面) |
UTF-8个编码规则,而Unicode是其中之一字符集。
广义Unicode是一种标准,它定义了一个字符集和一系列编码规则,即Unicode字符集和UTF-8UTF-16、编码规则,如UTF-32。
字符和字节字符是指字形的单位或符号,包括字母、数字、操作符号、标点符号和其他符号,以及一些功能符号。
字节是计算机信息技术用来测量存储容量的计量单位。当计算机通电时,高压和低压被用作最基本的测量单位,用“0”和“1”表示。“0”或“1”称为“位”或1位,8位为字节或1字节。
由于字符类型很多,不同的字符(包括英文字母、数字、中文、表情符号、其他语言)以及不同的编码格式会产生不同的字节。例如,ASCII码由一个字节表示。在UTF-8字符集下,一个汉字占三个字节,一个英文字符占一个字节。
如何查询MySQL中字符的字节长度(UTF-8编码)如下:
选择CHAR#Length(';Hello123abc';);包含8个字符。
选择CHAR#Length(';Hello123abc';);包含8个字符。
选择十六进制(';Hello123abc';);它需要12个字节,两个十六进制字符是一个字节。
选择十六进制(';Hello123abc';);它需要12个字节,两个十六进制字符是一个字节。
选择十六进制(';你';);汉字占3个字节,两个十六进制字符占1个字节。
选择十六进制(';你';);汉字占3个字节,两个十六进制字符占1个字节。
选择十六进制(';A';);英文字母占1字节。
选择十六进制(';A';);英文字母占1字节。
值类型
类型 | 大小 | 射程(签名) | 范围(无符号) | 意图 |
TINYINT | 1字节 | (-128,127) | (0,255) | 小整数值 |
斯莫林 | 2字节 | (-32768,32767) | (0,65535) | 大整数值 |
中微子 | 3字节 | (-8388608,8388607) | (0,16777215) | 大整数值 |
Int或整数 | 4字节 | (-2147483648,2147483647) | (0,4294967295) | 大整数值 |
比金 | 8字节 | (-9,223,372,036,854,775,808,9223372036854775807) | (0,18446744073709551615) | 最大整数值 |
浮动 | 4字节 | (-3.402823466E+38,-1.175494351E-38),0,(1.175494351E-38,3.402823466351E+38) | 0,(1.175494351E-38,3.402823466E+38) | 单精度 |
双重的 | 8字节 | (-1.7976931348623157E+308,-2.2250738585072014E-308),0,(2.2250738585072014E-308,1.7976931348623157E+308) | 0,(2.2250738585072014E-308,1.7976931348623157E+308) | 双精度 |
DECIMAL | 对于DECIMAL(m,d),如果m>;D.M+2,否则D+2 | 依赖于M和D的值 | 取决于D和M的值 | 小价值 |
日期和时间类型
类型 | 大小(字节) | 范围 | 总体安排 | 意图 |
日期 | 3字节 | 1000-01-01/9999-12-31 | YYYY-MM-DD | 日期值 |
时间 | 3字节 | '-838:59:59'/'838:59:59' | HH:嗯:SS | 时间值或持续时间 |
年 | 1字节 | 1901/2155 | YYYY | 年价值 |
约会时间 | 8字节 | 1000-01-0100:00:00/9999-12-3123:59:59 | YyyymmddHH:mm:SS | 混合日期和时间值 |
TIMESTAMP | 4字节 | 1970-01-0100:00:00/2038 结束时间是2147483647秒,北京时间2038-1-1911:14:07,2038年1月19日格林威治时间凌晨03:14:07 | YyyymmddHHMMSs | 日期和时间值混合,时间戳 |
字符串类型
类型 | 大小 | 意图 |
烧焦 | 0-255字节 | 定长字符串 |
瓦尔查尔 | 0-65535字节 | 可变长度字符串 |
TINYBLOB | 0-255字节 | 最多255个字符的二进制字符串 |
小TEXT | 0-255字节 | 短文本字符串 |
斑点 | 0-65535字节 | 二进制形式的长文本数据 |
小马 | 0-65535字节 | 长文本数据 |
中绿叶 | 0-16777215字节 | 二进制形式的中等长度文本数据 |
中型TEXT | 0-16777215字节 | 中等长度文本数据 |
长条 | 0-429467295字节 | 二进制形式的最大文本数据量 |
龙TEXT | 0-429467295字节 | 最大文本数据 |
MySQL的记录存储格式动态介绍(MySQL5.7默认行格式)
MySQL紧凑、动态的内容格式
固定5字节的头信息;
隐藏列包括6字节的行。如果没有为表定义主键,或者没有不存储null的唯一列,则生成隐藏的主键行umarx;trx_uu;Max,事务ID,6字节;roll_uupointer是一个回滚指针,7字节。
计算表中记录的理论尺寸
以tableuser为例。表格结构如下:
用户表结构
- Marx是int类型,占4字节;
- Name是一个varchar(20)可变长度字段,最多20个字符。如果全部为汉字,则占60字节,每个汉字占3字节;
- age为int型,占4字节;
- 类型char(2)为2个字符,但未定义任何字符。对于UTF-8编码,无法定义长度。如果是汉字,它将占用6个字节;
- 记录的最大长度(字节)=5(记录头信息)+6(事务ID)+7(回滚指针)+4(Marx)+60(名称)+4(age)+6(类型)=92字节;实际长度需要根据数据的平均长度来确定。❶❺❾❾注:对于char(2)类型的列,当该列采用固定长度编码字符集时,该列占用的字节数不会添加到可变长度字段长度列表中;如果采用可变长度编码的字符集,此列占用的字节数将添加到可变长度字段长度列表中。为了解决一个问题,我们需要使用很多知识点。仅仅掌握知识点是没有什么用处的。我们可以综合利用它们,形成一个知识体系来解决具体问题。
最新评论