数据库类型定义效率探索

Posted 鴻飛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库类型定义效率探索相关的知识,希望对你有一定的参考价值。

经过我的测试,发现

设置表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、查看占用空间并查询速度

以上是关于数据库类型定义效率探索的主要内容,如果未能解决你的问题,请参考以下文章

数据库类型空间效率探索-tinyint与enum与set

什么是探索性测试?

10年硬件老司机,带你探索单片机低功耗设计

10年硬件老司机,带你探索单片机低功耗设计

基于深度强化学习的局内战斗自动化测试探索

如果在之前阶段都做的很好,是否到探索性测试阶段,就不会发现Bug了