我有一张包含1亿多个地址的表格。表结构是:
`id` int(11) NOT NULL AUTO_INCREMENT,
`address1` varchar(255) DEFAULT NULL,
`address2` varchar(255) DEFAULT NULL,
`city` varchar(255) DEFAULT NULL,
`state` varchar(255) DEFAULT NULL,
`zip` varchar(255) DEFAULT NULL,
`country` varchar(255) DEFAULT NULL,
`addressable_id` int(11) DEFAULT NULL,
`created_at` datetime DEFAULT NULL
在决定实施哪种类型的分区时,我需要帮助。我应该在创建日期使用RANGE分区,还是在id列上使用HASH分区,还是其他类型?
答案 0 :(得分:1)
您看到多少个包含255个字符的邮政编码?你在用utf8吗?有多少个zipcodes有什么不是-ascii?
分区不有助于提升效果。我从未见过HASH分区的用例,这种用例无法通过索引完成。
如果您要清除“旧”数据或进行二维查找,则RANGE可能很有用。
让我们看看您的疑问。并考虑一下您将使用的INDEX。特别想想“复合”索引。