IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> mysql 一条数据占用的空间 -> 正文阅读

[大数据]mysql 一条数据占用的空间

?举例子,请问如下表,存储一条数据,占用的数据库空间是多少?

CREATE TABLE `payment_common_info` (
  `id` bigint(20) NOT NULL COMMENT 'id',
  `request_id` varchar(50) NOT NULL COMMENT '请求id',
  `source` tinyint(2) NOT NULL COMMENT '系统来源 1:DADA',
  `business_no` varchar(20) NOT NULL COMMENT '业务单号',
  `uuid` varchar(20) NOT NULL COMMENT '防重单号',
  `name` varchar(20) DEFAULT NULL COMMENT '姓名',
  `phone` varchar(20) DEFAULT NULL COMMENT '手机号',
  `cert_no` varchar(20) DEFAULT NULL COMMENT '身份证号',
  `charge_account_no` varchar(20) DEFAULT NULL COMMENT '收款账户',
  `actual_amount` decimal(16,2) DEFAULT NULL COMMENT '实发金额',
  `settle_amount` decimal(16,2) DEFAULT NULL COMMENT '结算金额',
  `payment_status` tinyint(6) DEFAULT '1' COMMENT '1:成功 2:失败 3:其他',
  `invoice_status` tinyint(2) NOT NULL COMMENT '1.成功 2.红冲 3.作废 4.其他',
  `invoice_date` datetime DEFAULT NULL COMMENT '开票时间',
  `payment_date` datetime DEFAULT NULL COMMENT '发佣时间',
  `create_date` datetime DEFAULT NULL COMMENT '创建时间',
  `update_date` datetime DEFAULT NULL COMMENT '更新时间',
  `valid` tinyint(2) NOT NULL DEFAULT '1' COMMENT '数据有效性 1有效 2无效',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uuid` (`uuid`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='发佣信息共有属性表';

1.mysql中的varchar(N)占用多少空间?

varchar(N)里的N是字符数,而不是字节数;字符类型(varchar text blob等)空间=字符实际长度+字段长度。varchar(N)占用的空间:


如果是lantin1字符集时,空间=1N+(1 or 2)bytes,因为lantin1的1个字符占用1个字节,后面加的1或2bytes是用来表示字段长度的,如果超过255个字节,要2个bytes来表示字段长度;
如果是utf8字符集时,空间=3N+(1 or 2)bytes,因为utf8的1个字符占用3个字节,后面加的1或2bytes是用来表示字段长度的。当可能超过255字节时,要2个bytes来表示字段长度。

举个例子:varchar(N)可能超过255字节,字段长度=2;
当varchar(100)字符集为utf8时,’aaaa‘分别占用几个字节?
因为varchar(100)存储中文将占用3*100=300,300 >225个字节,

所以需要2个字节来表示字段长度。’aaaa‘占用的空间=300+2=302bytes

2.mysql中的bigint(M)占用多少空间?

bigint(M)占用8个字节,有符号值:-9223372036854775808 到9223373036854775807(- 2^63到2^63-1)无符号值:0到18446744073709551615(0到2^64 – 1)

3.tinyint(m)占用多少空间?

tinyint(m)占用1字节,有符号值:-128 到127(- 2^7 到2^7 – 1),无符号值:0到255(0 到2^8 – 1)

4.smallint(m)占用多少空间?

smallint(m)占用2字节,有符号值:-32768 到32767(- 2^15 到2^15 – 1),无符号值:0到65535(0 到21 6 – 1)

5.mediumint(m)占用多少空间?

mediumint(m)占用3字节,有符号值:-8388608 到8388607(- 2^23 到2^23 – 1 ),无符号值:0到16777215(0 到2^24 – 1)

6.int(m)占用多少空间?

int(m)占用4字节,有符号值:-2147683648 到2147683647(- 2^31 到2^31- 1),无符号值:0到4294967295(0 到2^32 – 1)

7.float(m,d)占用多少空间?

float(m,d)占用4字节,最小非零值:±1.175494351e – 38

8.double(m,d)占用多少空间?

double(m,d)占用8字节,最小非零值:±2.2250738585072014e – 308

9.decimal (m, d)占用多少空间?

m字节(mysql < 3.23),m+2字节(mysql > 3.23 )

10.日期占用多少空间?

DATE占用4字节,范围1000-01-01——9999-12-31

TIME占用3字节,范围-838:59:59——838:59:59

DATETIME占用8字节,范围1000-01-01 00:00:00——9999-12-31 23:59:59

TIMESTAMP占用4字节,范围19700101080001——20380119111407

YEAR占用1字节,范围1901——2155

11.二进制数据类型占用多少字节?

二进制数据类型:二进制类型可存储任何数据,如文字、图像、多媒体等。

TITYBLOB,最大长度为255字节

BLOB,最大长度为64KB

MEDIUMBLOB,最大长度为16MB

LONGBLOB,最大长度为4GB

参考上述,表payment_common_info存储一条数据所占用的空间=8+(3*50+1)+1+6*(20*3+1)+16*2+1*3+4*8+(8+20*3+1索引占用空间按照索引字段大小算)=662个字节

参考文献:

mysql的索引key_len计算方法,及个字段所占字节数 - Yxh_blogs - 博客园

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-04-27 11:23:07  更:2022-04-27 11:27:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:09:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码