1.对于性别。
值固定,只有三种。建议用tinyint或者enum
2.int类型的长度。
此长度代表显示宽度,只用于显示。
不管int(1)还是int(11),占用字节数都为4byte。
鉴于int的最大值为4294967295,所以一般将长度设为int(11)
3.对于IP。
不要用varchar,建议用int。
mysql自带有相应的转换函数。
select
inet_aton('127.0.0.1')
,inet_aton('255.255.255.255')
,inet_ntoa(4294967295);
4.查看表的引擎。
SHOW TABLE STATUS from 数据库库名 where Name='表名'; (方式一)
mysqlshow -u 数据库登录帐号 -p '数据库登录帐号密码' --status 数据库库名 表名 (方式二)
例如:SHOW TABLE STATUS from aep where Name='user'
5.not null
尽量不要存null值,mysql存null值时会消耗额外的空间
6.TIMESTAMP
TIMESTAMP时间戳在创建的时候可以有多重不同的特性,如:
- 1.在创建新记录和修改现有记录的时候都对这个数据列刷新: TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
- 2.在创建新记录的时候把这个字段设置为当前时间,但以后修改时,不再刷新它: TIMESTAMP DEFAULT CURRENT_TIMESTAMP
- 3.在创建新记录的时候把这个字段设置为0,以后修改时刷新它:
TIMESTAMP ON UPDATE CURRENT_TIMESTAMP - 4.在创建新记录的时候把这个字段设置为给定值,以后修改时刷新它: TIMESTAMP DEFAULT ‘yyyy-mm-dd hh:mm:ss' ON UPDATE CURRENT_TIMESTAMP