目录
扫描二维码关注公众号,回复:
11032939 查看本文章
数据类型的选择
1、 使用可以存下你的数据的最小的数据类型。 (时间类型数据:可以使用 varchar 类型,可以使用 int 类型,也可以使用时间戳类型)
2、 使用简单的数据类型,int 要比 varchar 类型在 mysql 处理上简单。(int 类型存储时间是最好的选择)
3、 尽可能的使用 not null 定义字段。(innodb 的特性所决定,null 的值,需要额外的在字段存储,同时也会增加 IO 和存储的开销)
4、 尽量少用 text 类型,非用不可时最好考虑分表。
int 类型存储时间-时间转换
使用 int 来存储日期时间,利用 FROM_UNIXTIME(),UNIX_TIMESTAMP()两个函数来进行转换。
- unix_timestamp()函数是将日期格式的数据转换为 int 类型
- FROM_UNIXTIME(timestr)函数是将 int 类型转换为时间格式
创建表
create table test(
id int auto_increment not null,
timestr int ,
primary key(id)
);
导入数据
insert into test (timestr) values (unix_timestamp('2018-05-29 16:00:00'));
取出数据
IP地址的存储
在我们的外部应用中,都要记录 ip 地址,大部分场合都是 varchar(15)进行存储,就需要 15 个字节进行存储,但是 bigint 只需要 8 个字节进行存储。利用 INET_ATON(),INET_NTOA()两个函数来进行转换。
创建表
create table sessions(
id int auto_increment not null,
ipaddress bigint,
primary key (id)
);
导入数据
insert into sessions (ipaddress)values (inet_aton('192.168.0.1'));
查出结果转换为IP地址
select inet_ntoa(ipaddress) from sessions;