选择合适类型做数据库索引
使用 bigint 来 IP 地址,利用 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')); SELECT INET_NTOA(ipaddress) FROM sessions;
使用 int 来存储日期时间,利用 FROM_UNIXTIMEO(), UNIX_ TIMESTAMP() 两个函数来进行转换
CREATE TABLE test(id INT AUTO INCREMENT NOT NULL , timestr INT, PRIMARY KEY (id); INSERT INTO test(timestr) VALUES (UNIX_TIMESTAMP('2014-06-01 13:12:00'); SELECT FROM_UNIXTIME(timestr) FROM test;
数据类型的选择,重点在于合适二字,如何确定选择的数据类型是否合适?
使用可以存下你的数据的最小的数据类型。
使用简单的数据类型。Int 要比 varchar 类型在 mysql5 处理上简单。
尽可能的使用 not null 定义字段。
尽量少用 text 类型,非用不可时最好考虑分表。
1
合适的数据类型选择:
1.最小数据存储原则;
2.简单数据类型原则;
3.NOT NULL字段尽可能用,因为如果不加,由于innodb的存储特性,对于非not null 的(没听清楚)表会有额外字段来存储;
4尽量少text类型;
1、使用int看数据类型来存储日期时间数据
2、使用FROM_UNIXTIME和UNIX_TIMESTAMP函数来进行数据的转换
1、使用bigint数据类型来存储IP地址
2、使用INET_ATON和INET_NTOA函数来进行数据转换
3、bigint使用8个字节,如果使用varchar存储则需至少15个字节
使用bigint来存储IP地址,最多使用8个字节,如果使用varchar来存储的话最多得15个字节。
用int类型的时间戳及时间戳之间的转换函数,FROM_UNIXTIME()把int类型的时间戳转换为时间格式;UNIX_TIMESTAMP()则把时间戳格式转化为int类型。
选择合适的数据类型
数据库结构优化: 选择合适的数据类型
使用bigint类型存取IP地址
MySQL函数两个日期转换函数
FROM_UNIXTIME()将时间戳转成日期时间格式
UNIX_TIMESTAMP() 将日期时间转成时间戳
如何选择合适的数据类型
用 not null 定义字段,因为定义null的字段会采用额外的字段去存储,io开销大;
尽量不使用text类型,使用简单而小的数据类型;
时间类型可以存储int类型(占用内存小)利用from_unixtime()(时间戳转时间)和unix_timestamp()(时间转时间戳)函数进行转化
IP地址使用使用bigint存储,利用inet_aton(),inet_ntoa()两个函数转换(inet_aton()是将一个字符串IP地址转换为一个32位的网络序列IP地址,inet_ntoa()相反)
使用INET_ATON()函数和INET_NTOA()函数来转换ip地址
选择合适的数据类型
选择合适的数据类型
1.使用可存下数据的最小的数据类型
2.使用简单地数据类型,Int<varchar
3.尽可能使用not null定义字段
4.尽量少用text,非用不可最好分表
mysql里:
from_unixtime(int_time)函数可以将int类型的时间戳转为日期时间格式
unix_timestamp('2014-06-01 13:12:30')函数可以将日期时间格式转为int类型
INET_ATON 在插入数据的时候将IP地址转换成 int 类型
INET_NTOA() 在查询的时候将BIGINT类型转换成IP形式
选择合适的数据类型
选择合适的数据类型
INET_ATON 在插入数据的时候将IP地址转换成 int 类型
INET_NTOA() 在查询的时候将BIGINT类型转换成IP形式
数据库结构优化
mysql 优化
使用int存储日期时间
使用bigint存储ip地址
数据库优化之使用bigint来存储IP地址。
数据库优化之使用int来存储日期