数据库类型空间效率探索(一)

经过我的测试,发现

设置表userinfo的字段releas

分别为:varchar(25) default null、varchar(25) not null default ''、char(25) not null default ''

在数据量44460的时候,表userinfo占用的空间相同,根据releas字段模糊查询的速率相同。

这是为什么?是数据量太少,还是测试的方式不对,还是其他的原因?

注:测试环境

下面是测试的过程,谁能给解释一下?

1、数据量

2、表结构

3、表占用空间

4、将表转储为sql文件

表的大小:9.799K

5、模糊查询releas

6、修改表releas字段:varchar(25) default null->varchar(25) not null default ''

7、模糊查询releas

8、表占用空间

9、将表转储为sql文件

10、结论

通过上面的测试,设置表默认为空或者是not null default '',并没有改变表占用空间的大小与存储的文件的大小与查询速度。

接下来,接着修改

11、修改表releas字段:varchar(25) not null default ''->char(25) not null default ''

12、优化表,并查看表占用空间

13、模糊查询

14、导出sql文件

于2016年5月18号下午4点在公司测试

---------------------------------------------------------------------------------------------

今天是2016年5月21号上午11点,周六在家里面,此时想再次走一下上面的流程,此次不同的是,我将计算的大小精确到6位并四舍五入(round)而不是截取(truncate)。

测试环境:

测试结果:

表占用的空间还是没有随着char、varchar的改变而改变。

测试总体速度要远慢与公司测试的速度(我想有两个原因,一个电脑、一个是mysql版本)。

varchar(25) default null:0.13sec

varchar(25) not null default '':0.08sec

char(25) not null default '':0.09sec

测试步骤如下。

1、将公司的sql文件导入我的笔记本电脑,查看表信息(数据量、表结构、占用空间),确保和公司里面一样。

2、查询速度

3、修改表releas字段:varchar(25) default null->varchar(25) not null default ''

4、查看占用空间并查询速度

5、修改表releas字段:varchar(25) not null default ''->char(25) not null default ''

6、查看占用空间并查询速度

原文地址:https://www.cnblogs.com/shixm/p/5505784.html