zoukankan      html  css  js  c++  java
  • mysql 占用的内存大小

    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

  • 相关阅读:
    繁星CSS3之旅-CSS基本样式-CSS文本字体
    繁星CSS3之旅-CSS基本样式-CSS文本
    繁星CSS3之旅-CSS基本样式-CSS背景
    繁星CSS3之旅-CSS入门基础知识
    繁星H5之旅-前端学习入门
    繁星H5之旅-HTML5表单新增元素与属性
    字符串分割split()
    返回指定的字符串首次出现的位置
    python中非关键字可变长参数和关键字变量参数的区别
    喝了一碗毒鸡汤
  • 原文地址:https://www.cnblogs.com/nzbbody/p/4605673.html
Copyright © 2011-2022 走看看