mysql decimal效率_数据库类型空间效率探索(五)- decimal/float/double/varchar

以下测试为userinfo增加一列,列类型分别为decimal、float、double、varchar。由于innodb不支持optimize,所以每次测试,都会删除表test.userinfo,重新拷贝swanfly.userinfo->test.userinfo,原始userinfo表data_size为28.562MB,data_free为4.000MB。

具体测试流程如下:

查看表数据量(data_size)

select concat(truncate(sum(data_length)/1024/1024,3),'MB') as data_size,

concat(truncate(sum(max_data_length)/1024/1024,3),'MB') as max_data_length,

concat(truncate(sum(data_free)/1024/1024,3),'MB') as data_free,

concat(truncate(sum(index_length)/1024/1024,3),'MB') as index_length

from information_schema.tables where table_name='userinfo';

80b2c3b521b9569488af8e25e427b19a.png

Decimal

为表添加decimal列

ALTER TABLE `userinfo`

ADD COLUMN `molecularWeight` decimal(10,6) UNSIGNED NOT NULL DEFAULT 0 AFTER `integral`;

67a725de97a74204322837b01b927f27.png

查看表数据量(data_size)

14b2112fc19ffe8b495180e7321331d2.png

为decimal列赋值

8a66f48189252af53296c8545e93ddaf.png

查看表数据量(data_size)

518f2dd4ebadac4e313c1ba695060fe6.png

结论:

在13万条数据的表中,添加一decimal(10,6)类型的列,会多占用5M左右空间。继续插入数据,表占用空间不变。

Float

d4bf4e5ba7cc06d53bb7088dabd7d3db.png

4dd39961067a88260c0a64555f55c547.png

285222e0998d0d462d6fe71708e839a0.png

Double

8f4ba362775c8d65ce52941d7d88b837.png

a8c4c8c1e7c0a738441c46b630c0b9c4.png

1638f05996b16ebf62cc6c26934acb0e.png

af84025096be915cbe8d84cf2cebd936.png

Varchar

f489962ed53115462a64f1738d593c25.png

d0758be1b70cb6a7ba1e8c571c322831.png

d0f2ed82101bcc374ea1a83a1b34883e.png

b47413c61959edad019d1d6f1ba91e9e.png

备注:

ec35e2e0c29b6eda0438757ba1f5ad5f.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值