当前位置:  开发笔记 > 后端 > 正文

具有70%空值的列的索引:使用null或空值?

如何解决《具有70%空值的列的索引:使用null或空值?》经验,为你挑选了0个好方法。

我们目前正在优化一个MySQL表(InnoDB),它甚至会有超过1亿行.

在一列中,我们存储IP地址(VARCHAR 45).我们需要在此列上放置一个索引,因为我们必须能够检索每个特定IP地址的所有行.

但是,所有行的70%不会存储IP地址().

我们的问题:我们应该将这些空值存储为NULL,从而在此列上允许NULL(将为每一行添加1个字节).或者我们不应该允许NULL并将那些空值存储为''(空字符串)

什么是最佳表现?

我们永远不必搜索空(='')或空(IS NULL)的行,只搜索特定的IP地址(='123.456.789.123').

更新:在SO上确实有很多问题可以解决类似的问题.然而,一些答案似乎是矛盾的或说"它取决于".我们将运行一些测试并在此处针对我们的具体方案发布我们的发现.

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有