Mysql

嗯,忽然想继续看《高性能MYSQL》。然后就拿出来看了。

纠结的点在于,原来建表的时候比较依赖软件,导致对MYSQL底层存储的概念有些混淆。所以再review一下。

有两种类型的数字:整数和实数。

    整数类型有:TINYINT --- 8位, SMALLINT --- 16位, MEDIUMINT --- 24位, INT --- 32位, BIGINT --- 64位。可以选择 UNSIGNED属性,扩大正整数的范围。

                            但是!!上述类型的存储长度是固定的。不管写什么int(4) tinyint(4)只可能对显示造成影响。对于存储和计算木有影响。我居然曾经以为有影响也是醉醉的。

    实数类型有:FLOAT(4字节),DOUBLE(8字节),DECIMAL ---- 将数字打包保存到一个二进制字符串中,(每个字节保存9个数字),最多允许65个数字。

                            MYSQL使用double作为内部浮点计算的类型。也就是说,float只是省磁盘,需要运算时还需要转化。5.0版本之后,支持decimal计算。


字符:

varchar 变长 需要使用1或2个字节来记录字符串长度。由于变长,所以不便于更新操作。比较时会忽略开头和结尾的空格。

char定长,mysql会删除所有的末尾空格 采用空格填充方便比较。

binary/varbinary和char类似,分为定长和可变。将字符串转化为二进制存储,因此可以对比出开头结尾有空格的字符串的不同。


TEXT和BLOB区别在于:blob存储的是二进制数据,没有排序规定或字符集。text则有字符集和排序规则。

mysql对于这两者的排序不同与其他类型,它只对每个列的最前MAX_SORT_LENGTH字节做排序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值