MySQL之数据类型优化

目录

数据类型的选择

int 类型存储时间-时间转换

创建表

导入数据

取出数据

IP地址的存储

创建表 

导入数据

查出结果转换为IP地址


数据类型的选择


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;

发布了568 篇原创文章 · 获赞 180 · 访问量 18万+

猜你喜欢

转载自blog.csdn.net/Delicious_Life/article/details/105612139