MySQL数据库实战教程-73-表的设计经典设计方案( 二 )

3.存储IP值IP值一般使用char或varchar进行存储,但是当进行查找和统计时,字符类型不是很高效 。MySQL数据库内置了两个IP相关的函数INET_ATON()INET_NTOA(),可以实现 IP 地址和整数类型的转换 。转换后使用可以INT UNSIGNED 来存储IP,转换后的数字是连续的,提高了查询性能,占用空间更小 。
CREATE TABLE `tb_ip` ( `increment_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘自增主键‘, `name` varchar(100) NOT NULL COMMENT ‘姓名‘, `inet_ip` int(10) unsigned NOT NULL COMMENT ‘IP‘, PRIMARY KEY (`increment_id`), KEY `idx_inet_ip` (`inet_ip`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=‘ip测试表‘;# 插入数据insert into `tb_ip` (`name`,`inet_ip`) values (‘wang‘,INET_ATON(‘192.168.0.1‘)),(‘lisi‘,INET_ATON(‘192.168.0.2‘));# 相互转换select INET_ATON(‘192.168.0.1‘);select INET_NTOA(3232235521);总结:?
本篇文章分享了几个库表设计及字段类型选取的建议 。这些案例都是常常见到的场景,对于int类型及时间类型的选取,本文也根据常见场景给出相关建议,希望大家读完这篇文章有所收获 。其实库表设计是件复杂的事情,需要在项目前期多方人员共同规划讨论 。还是那句话,只有优秀的库表设计才能发挥出MySQL最大的性能 。

MySQL数据库实战教程-73-表的设计经典设计方案

文章插图
MySQL库表设计小技巧
标签:wan   otc   image   超过   time()   ima   场景   png   cms