mysql数据库优化--(2)设计 字段类型的选择

来源:互联网 发布:北京美工工资一般多少 编辑:程序博客网 时间:2024/05/16 14:40

建表时,往往需要考虑字段的类型的问题.

可优化性不强,需要注意以下的几个原则

2.1       尽可能占用更少的存储空间

多少字节Byte!

tinyint:1, smallint 2, mediumint 3,int 4, bigint 8

但是小空间带来的问题,存储量的减少,范围的减少.

Boolean =tinyint

 

 

datetime:8timestamp:4datetimeyear

datetime timestamp的选择?

存储 2039,超过了unix时间戳范围:

timestamp字段失败了.

timestamp占用4个字节,存储的时间范围是有限的.1970-2038-1-19 3:11

 

例如存储登录时间.就可以用timestamp来存储.

 

2.2       尽可能定长(占用固定的存储空间)数据类型

定长的数据类型的运算速度,要不变长的数据类型速度快.

 

类型:char(32), varchar(32)

数据:hellokang, hellokang

空间:32, 9+1(1个空间记录长度)

 

如果在乎存储空间:varchar

在乎的计算效率:char,最大长度为255

 

varchar() text的选择?

varchar,占用记录的存储空间

text,不占用记录的存储空间

一条记录的存储的空间有最大的限制,默认是65535Bytes

 

 

浮点(double8,float4定点(decimal)

浮点,更在乎存储空间,不能保留全部的精度.定长数据类型,占用固定的存储空间.

定点,更在乎精度,保留精度.占用非固定的存储空间,随着有效数位增加,而占用更多的存储空间.

 

PHP,float,他是双精度的double,占用8个字节!

 

2.3       尽可能用整数代替字符串

整数计算能力最强.

 

典型的 ipv4的存储,可以转成int.(存储空间小,整数计算快)

 

使用起来是字符串,存储起来是整数

enum,枚举,单选: 0 / 1

set集合,复选: 1 2 3 4 5 ...

原创粉丝点击