我不知道是什么类型(组,整数,时间,CHAR,VARCHAR,文本,...)我应该使用这些数据:我应该在MySQL中使用哪些类型的数据?
- IP
- 个人信息
- 数据和时间
- 标题
- 名(或姓)
- 用户代理
- 论坛答案(或意见)
- 电子邮件地址
- 国家
- 密码
- 自定义会话cookie
我不知道是什么类型(组,整数,时间,CHAR,VARCHAR,文本,...)我应该使用这些数据:我应该在MySQL中使用哪些类型的数据?
这还挺有趣的问题,但我会回答IP地址。
您可以将IP地址存储在INT UNSIGNED中。
mysql> SELECT INET_ATON('192.168.0.10') AS ipn;
mysql> SELECT INET_NTOA(3232235530) AS ipa;
因此,您可以在一个INT UNSIGNED(4字节)中存储IP地址,这当然比CHAR(15)更高效和更快。
如果您的标题最大限度地节省空间,是的。另一方面,在客户端软件中查看并不实际,甚至范围查找可能会更慢。 – AndreKR
客户端应通过函数INET_NTOA()进行选择,并查看正确的输出IP。范围查找速度更快,为什么它会更慢?例如:如果您从哪个国家搜索IP,这是最佳解决方案。 http://www.ip2location.com/拥有INT值的数据库。 –
没有我知道的客户端(例如,phpMyAdmin,MySQL Workbench,Navicat,HeidiSQL)可以在查看表格时执行此操作。对于慢速查找,我想到的东西像'WHERE INET_NTOA(col)LIKE“192.168。%。255”',现在我明白了,我没有说清楚。 – AndreKR
这取决于你的个人品味/你的公司的规范一点,但我会用:
什么是对downvoting的原因是什么?有时如果我们的程序员更经常问这类问题,我会很高兴。 – AndreKR