博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql 占用的内存大小
阅读量:5338 次
发布时间:2019-06-15

本文共 4898 字,大约阅读时间需要 16 分钟。

1、mysql执行查询计划,key_len表示索引使用的字节数,这个字节数和三个条件有关。

mysql> create table t1(v1 char(10));
Query OK, 0 rows affected

mysql> create index index_v1 on t1(v1);

Query OK, 0 rows affected
Records: 0 Duplicates: 0 Warnings: 0

2、是否允许为null,允许为null 会多一个字节,标识取值是否为NULL。如下:

mysql> alter table t1 modify column v1 char(10) not null;
Query OK, 0 rows affected
Records: 0 Duplicates: 0 Warnings: 0

mysql> desc select * from t1;

+----+-------------+-------+-------+---------------+----------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+---------------+----------+---------+------+------+-------------+
| 1 | SIMPLE | t1 | index | NULL | index_v1 | 30 | NULL | 1 | Using index |
+----+-------------+-------+-------+---------------+----------+---------+------+------+-------------+
1 row in set

mysql> alter table t1 modify column v1 char(10) null;

Query OK, 0 rows affected
Records: 0 Duplicates: 0 Warnings: 0

mysql> desc select * from t1;

+----+-------------+-------+-------+---------------+----------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+---------------+----------+---------+------+------+-------------+
| 1 | SIMPLE | t1 | index | NULL | index_v1 | 31 | NULL | 1 | Using index |
+----+-------------+-------+-------+---------------+----------+---------+------+------+-------------+
1 row in set
3、是否为变长,变长多出两个字节表示长度,如下:
mysql> alter table t1 modify column v1 varchar(10) null;
Query OK, 0 rows affected
Records: 0 Duplicates: 0 Warnings: 0

mysql> desc select * from t1;

+----+-------------+-------+-------+---------------+----------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+---------------+----------+---------+------+------+-------------+
| 1 | SIMPLE | t1 | index | NULL | index_v1 | 33 | NULL | 1 | Using index |
+----+-------------+-------+-------+---------------+----------+---------+------+------+-------------+
1 row in set

mysql> alter table t1 modify column v1 char(10) null;

Query OK, 0 rows affected
Records: 0 Duplicates: 0 Warnings: 0

mysql> desc select * from t1;

+----+-------------+-------+-------+---------------+----------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+---------------+----------+---------+------+------+-------------+
| 1 | SIMPLE | t1 | index | NULL | index_v1 | 31 | NULL | 1 | Using index |
+----+-------------+-------+-------+---------------+----------+---------+------+------+-------------+
1 row in set
4、字符类型,varchar(n) 中的n是字符个数,不是占用多少个字节的内存。对于不同的编码,同样一个字符占用的内存不一样。latin1 一个字符占用1个字节,gb2312 一个字符占用2个字节,utf8 一个字符占用3个字节。
mysql> alter table t1 modify column v1 char(10) charset latin1;
Query OK, 0 rows affected
Records: 0 Duplicates: 0 Warnings: 0

mysql> desc select * from t1;

+----+-------------+-------+-------+---------------+----------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+---------------+----------+---------+------+------+-------------+
| 1 | SIMPLE | t1 | index | NULL | index_v1 | 11 | NULL | 1 | Using index |
+----+-------------+-------+-------+---------------+----------+---------+------+------+-------------+
1 row in set

mysql> alter table t1 modify column v1 char(10) charset gb2312;

Query OK, 0 rows affected
Records: 0 Duplicates: 0 Warnings: 0

mysql> desc select * from t1;

+----+-------------+-------+-------+---------------+----------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+---------------+----------+---------+------+------+-------------+
| 1 | SIMPLE | t1 | index | NULL | index_v1 | 21 | NULL | 1 | Using index |
+----+-------------+-------+-------+---------------+----------+---------+------+------+-------------+
1 row in set

mysql> alter table t1 modify column v1 char(10) charset utf8;

Query OK, 0 rows affected
Records: 0 Duplicates: 0 Warnings: 0

mysql> desc select * from t1;

+----+-------------+-------+-------+---------------+----------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+---------------+----------+---------+------+------+-------------+
| 1 | SIMPLE | t1 | index | NULL | index_v1 | 31 | NULL | 1 | Using index |
+----+-------------+-------+-------+---------------+----------+---------+------+------+-------------+
1 row in set

转载于:https://www.cnblogs.com/nzbbody/p/4605673.html

你可能感兴趣的文章
JS定时器时间日期钟表
查看>>
partial(C# 参考)
查看>>
Supervisor介绍、安装及配置
查看>>
openshift 添加cron定时任务
查看>>
sublime text3在指定浏览器上本地服务器(localhost)运行文件(php)
查看>>
【ABAP系列】SAP ABAP基础-录制BDC的MODE定义解析
查看>>
C++编写DLL的方法
查看>>
自适应布局1
查看>>
docker不稳定 short running containers with -rm failed to destroy
查看>>
poj 3071 Football (概率DP水题)
查看>>
NEFU 506&&ZOJ 3353 Chess Board (四种构造的高斯消元)
查看>>
JS正则表达式验证数字
查看>>
tcmalloc jemalloc 和ptmalloc 对比
查看>>
线性回归当中的矩阵求导问题
查看>>
nnet3的代码分析
查看>>
Android开发视频教学第一季(1-16集)视频源码下载
查看>>
Delphi 根据快捷方式路径取源文件地址
查看>>
php生成html文件
查看>>
连续52周,每周推出一个新的应用程序
查看>>
URAL 1416 Confidential(次小生成树)
查看>>