首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

面试官:如果ip地址,什么数据类型比较好

在看高性能MySQL第3版(4.1.7节)时,作者建议当存储IPv4地址时,应该使用32位的无符号整数(UNSIGNED INT)来存储IP地址,而不是使用字符串。但是没有给出具体原因。...MySQL在保存变长的字符串时,还需要额外的一个字节来保存此字符串的长度。而如果使用无符号整数来存储,只需要4个字节即可。...另外还可以使用4个字段分别存储IPv4中的各部分,但是通常这不管是存储空间和查询效率应该都不是很高(可能有的场景适合使用这种方式存储)。...不便于阅读 需要手动转换 对于转换来说,MySQL提供了相应的函数来把字符串格式的IP转换成整数INET_ATON,以及把整数格式的IP转换成字符串的INET_NTOA。...如下所示: mysql> select inet_aton('192.168.0.1'); +--------------------------+ | inet_aton('192.168.0.1')

1K30

面试官:如果ip地址,什么数据类型比较好?

导读:设计表结构存储IPV4地址时,你的第一反应是什么类型?...在看高性能MySQL第3版(4.1.7节)时,作者建议当存储IPv4地址时,应该使用32位的无符号整数(UNSIGNED INT)来存储IP地址,而不是使用字符串。 但是没有给出具体原因。...MySQL在保存变长的字符串时,还需要额外的一个字节来保存此字符串的长度。而如果使用无符号整数来存储,只需要4个字节即可。...另外还可以使用4个字段分别存储IPv4中的各部分,但是通常这不管是存储空间和查询效率应该都不是很高(可能有的场景适合使用这种方式存储)。...: 不便于阅读 需要手动转换 对于转换来说,MySQL提供了相应的函数来把字符串格式的IP转换成整数INET_ATON,以及把整数格式的IP转换成字符串的INET_NTOA。

1.1K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    慎用mysql的enum字段的原因

    ,这是PHP和 mysql 在使用enum 最大的问题。所以。。安心点啦。干脆点直接tinyint。...简单观点:    少用,一般都是tinyint替代。 天枫观点:    我觉得除了状态直观  没什么优点,我一般直接int,tinyint([1or2or3]) 到底有啥区别?...`enum2tinyint` (`switchs`, `switch`) VALUES (2, '1'); success 1 结论:插入enum的值...2)数据库说明清楚的话,或者可选择的全是字符串的话,还没什么,但是里面有数字,难免有新手犯错,养成加引号的习惯很重要。...这种字段的重复内容过多的,索引建不建,关系不大,这种在mysql叫索引的势太低,其查询效果不太好 https://www.cnblogs.com/-mrl/p/5096447.html 发布者:全栈程序员栈长

    66920

    面试官:如果 IP 地址,什么数据类型比较好?

    在看高性能MySQL第3版(4.1.7节)时,作者建议当存储IPv4地址时,应该使用32位的无符号整数(UNSIGNED INT)来存储IP地址,而不是使用字符串。但是没有给出具体原因。...MySQL在保存变长的字符串时,还需要额外的一个字节来保存此字符串的长度。而如果使用无符号整数来存储,只需要4个字节即可。...另外还可以使用4个字段分别存储IPv4中的各部分,但是通常这不管是存储空间和查询效率应该都不是很高(可能有的场景适合使用这种方式存储)。...: 不便于阅读 需要手动转换 对于转换来说,MySQL提供了相应的函数来把字符串格式的IP转换成整数INET_ATON,以及把整数格式的IP转换成字符串的INET_NTOA。...如下所示: mysql> select inet_aton('192.168.0.1'); +--------------------------+ | inet_aton('192.168.0.1')

    1K20

    面试官:如果ip地址,什么数据类型比较好

    来源:blog.csdn.net/mhmyqn/article/details/48653157 在看高性能MySQL第3版(4.1.7节)时,作者建议当存储IPv4地址时,应该使用32位的无符号整数...MySQL在保存变长的字符串时,还需要额外的一个字节来保存此字符串的长度。而如果使用无符号整数来存储,只需要4个字节即可。...另外还可以使用4个字段分别存储IPv4中的各部分,但是通常这不管是存储空间和查询效率应该都不是很高(可能有的场景适合使用这种方式存储)。...: 不便于阅读 需要手动转换 对于转换来说,MySQL提供了相应的函数来把字符串格式的IP转换成整数INET_ATON,以及把整数格式的IP转换成字符串的INET_NTOA。...如下所示: mysql> select inet_aton('192.168.0.1'); +--------------------------+ | inet_aton('192.168.0.1')

    31510

    面试官:如果ip地址,什么数据类型比较好

    MySQL在保存变长的字符串时,还需要额外的一个字节来保存此字符串的长度。而如果使用无符号整数来存储,只需要4个字节即可。...另外还可以使用4个字段分别存储IPv4中的各部分,但是通常这不管是存储空间和查询效率应该都不是很高(可能有的场景适合使用这种方式存储)。...“https://bafford.com/2009/03/09/mysql-performance-benefits-of-storing-integer-ip-addresses/ 使用无符号整数来存储也有缺点...: 不便于阅读 需要手动转换 对于转换来说,MySQL提供了相应的函数来把字符串格式的IP转换成整数INET_ATON,以及把整数格式的IP转换成字符串的INET_NTOA。...如下所示: mysql> select inet_aton('192.168.0.1'); +--------------------------+ | inet_aton('192.168.0.1')

    27920

    面试官:如果 ip 地址,什么数据类型比较好?

    来源:blog.csdn.net/mhmyqn/article/details/48653157 在看高性能MySQL第3版(4.1.7节)时,作者建议当存储IPv4地址时,应该使用32位的无符号整数(...MySQL在保存变长的字符串时,还需要额外的一个字节来保存此字符串的长度。而如果使用无符号整数来存储,只需要4个字节即可。...另外还可以使用4个字段分别存储IPv4中的各部分,但是通常这不管是存储空间和查询效率应该都不是很高(可能有的场景适合使用这种方式存储)。...: 不便于阅读 需要手动转换 对于转换来说,MySQL提供了相应的函数来把字符串格式的IP转换成整数INET_ATON,以及把整数格式的IP转换成字符串的INET_NTOA。...如下所示: mysql> select inet_aton('192.168.0.1'); +--------------------------+ | inet_aton('192.168.0.1')

    86940

    如果 IP 地址,什么数据类型比较好?大部人都会答错!

    来源:blog.csdn.net/mhmyqn/article/details/48653157 在看高性能MySQL第3版(4.1.7节)时,作者建议当存储IPv4地址时,应该使用32位的无符号整数(...MySQL在保存变长的字符串时,还需要额外的一个字节来保存此字符串的长度。而如果使用无符号整数来存储,只需要4个字节即可。...另外还可以使用4个字段分别存储IPv4中的各部分,但是通常这不管是存储空间和查询效率应该都不是很高(可能有的场景适合使用这种方式存储)。...: 不便于阅读 需要手动转换 对于转换来说,MySQL提供了相应的函数来把字符串格式的IP转换成整数INET_ATON,以及把整数格式的IP转换成字符串的INET_NTOA。...如下所示: mysql> select inet_aton('192.168.0.1'); +--------------------------+ | inet_aton('192.168.0.1')

    44530

    如果 IP 地址,什么数据类型比较好?大部人都会答错!

    来源:blog.csdn.net/mhmyqn/article/details/48653157 在看高性能MySQL第3版(4.1.7节)时,作者建议 当存储IPv4地址时,应该使用32位的无符号整数...MySQL在保存变长的字符串时,还需要额外的一个字节来保存此字符串的长度。而如果使用无符号整数来存储,只需要4个字节即可。...另外还可以使用4个字段分别存储IPv4中的各部分,但是通常这不管是存储空间和查询效率应该都不是很高(可能有的场景适合使用这种方式存储)。...: 不便于阅读 需要手动转换 对于转换来说,MySQL提供了相应的函数来把字符串格式的IP转换成整数 INET_ATON,以及把整数格式的IP转换成字符串的 INET_NTOA。...如下所示: mysql> select inet_aton('192.168.0.1'); +--------------------------+ | inet_aton('192.168.0.1')

    60320

    MySql中InnoDB表为什么建议自增列做主键

    3、主索引 数据记录本身被于主索引(一颗B+Tree)的叶子节点上。...这就要求同一个叶子节点内(大小为一个内存页或磁盘页)的各条数据记录按主键顺序存放,因此每当有一条新的记录插入时,MySQL会根据其主键将其插入适当的节点和位置,如果页面达到装载因子(InnoDB默认为15...记录就会顺序添加到当前索引节点的后续位置,当一页写满,就会自动开辟一个新的页 5、非自增主键 如果使用非自增主键(如果身份证号或学号等),由于每次插入主键的值近似于随机,因此每次新纪录都要被插到现有索引页得中间某个位置,此时MySQL...会选择内置的ROWID作为主键,写入顺序和ROWID增长顺序一致; 除此以外,如果一个InnoDB表又没有显示主键,又有可以被选择为主键的唯一索引,但该唯一索引可能不是递增关系时(例如字符串、UUID、多字段联合唯一索引的情况...《高性能MySQL》中的原话 ? ?

    3.9K20

    面试官:如果 IP 地址,什么数据类型比较好?99%人都会答错!

    MySQL在保存变长的字符串时,还需要额外的一个字节来保存此字符串的长度。而如果使用无符号整数来存储,只需要4个字节即可。...另外还可以使用4个字段分别存储IPv4中的各部分,但是通常这不管是存储空间和查询效率应该都不是很高(可能有的场景适合使用这种方式存储)。...https://bafford.com/2009/03/09/mysql-performance-benefits-of-storing-integer-ip-addresses/ 使用无符号整数来存储也有缺点...: 不便于阅读 需要手动转换 对于转换来说,MySQL提供了相应的函数来把字符串格式的IP转换成整数INET_ATON,以及把整数格式的IP转换成字符串的INET_NTOA。...如下所示: mysql> select inet_aton('192.168.0.1'); +--------------------------+ | inet_aton('192.168.0.1')

    31021

    mysql的count统计查询到底怎么mysql

    如果不加where,它可以直接取到结果,因为它可以利用存储引擎的特性直接获得这个值,比如count(*) 3,统计列时,如果知道这个列不能为空,会转化为count(*),从而加快速度 所以:你要知道自己什么...,该怎么样去 拓展:为啥慢?...在无可用的二级索引情况下,执行count会使MySQL扫描全表数据,当数据中存在大字段字段较多时候,其效率非常低下(每个页只能包含较少的数据条数,需要访问的物理页较多) 三、实际应用 1,50万条数据...,没有索引,大约耗时13分钟 2,50万条数据,有索引,大约耗时354毫秒 3,原理 mysql一个数据页为:16k(默认) 能16*1024/(4+8) =1365条数据(为什么是4+8可以看看mysql...存储页的原理) 假设每页数据耗损不存满,50% 50万条数据,需要500000/1365*2 为 732个物理页 大小为16k*732为11.4M mysql空间按区分配,一区1M,假设连续的话,需要连续读

    3.3K20

    你好奇过 MySQL 内部临时表什么吗?

    临时表哪种存储引擎? MySQL 临时表可以选择 3 种存储引擎:MEMORY、MyISAM、InnoDB。...SQL_SMALL_RESULT 是这样的: select SQL_SMALL_RESULT * from t_recbuf 前面已经介绍完了 MySQL 怎么选择内存、磁盘存储引擎,如果 MySQL...决定了要使用磁盘存储引擎, MyISAM 还是 InnoDB ?...把原计划插入内存临时表但还没插入的那条记录插入磁盘临时表。 删除内存临时表。 创建磁盘临时表 等内存临时表写满,才知道需要创建磁盘临时表,这样成本太高了。...临时表 e1 字段上唯一索引的存在,就是为了保证每个分组中记录的唯一性,保证唯一性的流程是这样的: 第 1 步,从 t_internal_tmp_table 表中读取一条记录之后,该记录的 e1 字段值作为查询条件

    1.6K20

    什么学习 Markdown?究竟有什么

    来源:杰哥的IT之旅 作者:JackTian 微信公众号:杰哥的IT之旅(ID:Jake_Internet) 一、什么是 Markdown?...JackTian 微信公众号:杰哥的IT之旅(ID:Jake_Internet) 列表中使用引用 2 代码 markdown对代码块的语法是开始和结束行都要添加:```,其中 ` 为windows键盘左上角那个,精确指定语言...除此之外,链接还可以变量来代替。...这个链接 Rsync 备份工具 作为网址变量 Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步 这个链接 无人值守安装 作为网址变量 RHEL 6 下 DHCP...这里也欢迎大家留言说说,你是通过什么 Markdown 编辑器工具来写文章的。 七、怎么将 Markdown 编写的文章与公众号平台相结合?

    1.1K10

    同一份数据,Redis为什么两次?

    集合对象常用命令 五种基本类型之有序集合对象 有序集合对象常用命令 总结 ---- 前言 在 Redis 中,有一种数据类型,当在存储的时候会同时采用两种数据结构来进行分别存储,那么 Redis 为什么这么做呢...将新元素放到数组的头部或者尾部(因为触发升级的条件就是当前数组的整数类型无法存储新元素,所以新元素要么比现有元素都大,要么就比现有元素都小)。...3.现在新的数组放置 4 个元素,原来的数组排在第 3,所以需要将升级后的 3 移动到 64-95 位。 4.继续将升级后的 2 移动到 32-63 位。...zskiplist 来实现的,然而实际上 Redis 并没有直接使用 zskiplist 来实现,而是 zset 对象再次进行了一层包装。...也就是说字典和跳跃表中的数据都指向了我们存储的元素(两种数据结构最终指向的是同一个地址,所以数据并不会出现冗余存储),Redis 为什么这么做呢?

    33330

    LSTM过气了,什么来取代?

    显然,这个解决方案所涉及的矢量过程过于稀疏和庞大,无法捕捉语言本质,稍微复杂的语言任务都无法n-grams和BoW来处理。那么如何解决呢?这里就要用到循环神经网络(RNN)了。...当然,进行很大的简化,在10个时间点之后,初始输入x₀实际上乘以w¹⁰,其中w是权重矩阵。...最重要的是,不同的语言表达形式有不同的语法规则集,比如不同的诗歌形式、不同的方言(莎士比亚和古英语)、不同的例(Twitter上的文字语言,即兴演讲的书面版本)。...因此,从Wikipedia上经过预训练的LSTM开始,似乎并不比从头学习数据集容易很多。...真正实现“退役”,还有很长的路要走,但是它的应用肯定处于下降状态。

    80310

    mysql什么分表和分区?

    mysql什么分表和分区? 日常开发中我们经常会遇到大表的情况,所谓的大表是指存储了百万级乃至千万级条记录的表。...什么是分表? 分表是将一个大表按照一定的规则分解成多张具有独立存储空间的实体表,我们可以称为子表,每个表都对应三个文件,MYD数据文件,.MYI索引文件,.frm表结构文件。...什么是分区? 分区和分表相似,都是按照规则分解表。不同在于分表将大表分解为若干个独立的实体表,而分区是将数据分段划分在多个位置存放,可以是同一块磁盘也可以在不同的机器。...mysql分表和分区有什么联系呢? 1.都能提高mysql的性高,在高并发状态下都有一个良好的表现。...2.分表和分区不矛盾,可以相互配合的,对于那些大访问量,并且表数据比较多的表,我们可以采取分表和分区结合的方式(如果merge这种分表方式,不能和分区配合的话,可以其他的分表试),访问量不大,但是表数据很多的表

    1K00

    Mysql:好好的索引,为什么下推?

    好了,这里你应该了解了什么是回表操作了。简单来讲,就是在非主键索引树上拿到对应的主键值,然后回到主键索引上找到对应的行数据。 这样做的前提条件是,所要查找的字段不存在于非主键索引树上。...其实在 Mysql 5.6 版本之前是没有索引下推这个功能的,从 5.6 版本后才加上了这个优化项。所以在引出索引下推前还是先回顾下没有这个功能时是怎样一种处理方式。 我们以一个真实例子来进行讲解。...在这里 1 表示男,2 表示女。现在需要查找所有姓王的男性信息。 SQL 实现起来很简单: 但是它的实现原理是什么呢?...整个原理可以下边的图进行表示。 看到了吧,低版本中需要每条数据都进行回表,增加了树的搜索次数。如果遇到所要查找的数据量很大的话,性能必然有所缺失。...所以本质来说,索引下推就是只有符合条件再进行回表,对索引中包含的字段先进行判断,不符合条件的跳过。减少了不必要的回表操作。

    4.2K31
    领券