URL的数据库索引

Amy*_*y B 2 database indexing nosql

我必须在数据库中存储数百万个URL,并能够快速通过URL查找行.

MySQL的字符串索引不够快,因为它们只索引字符串的前4个字符,这通常是www.,然后MySQL迭代每个行开头www.并将值与我搜索的URL进行比较.

MongoDB不允许您自定义为字符串索引的字符数,并且文档不是很详细,所以我不认为MongoDB是合适的.

Google App Engine有一种特殊的网址类型,很棒,但我不能使用GAE.

有什么建议?

Qua*_*noi 8

MySQL的字符串索引不够快,因为它们只索引字符串的前4个字符,通常是www.然后MySQL迭代每个以www开头的行.并将该值与我搜索的URL进行比较.

这不是真的.MySQL可以索引多达1000字节MyISAM767字节InnoDB.

如果您只需要URL字符串的字符匹配,请为其哈希值编制索引.

这将使您的索引大小保持较低(16如果您使用类似的东西,每个键的字节数MD5),键值将均匀分布.