在我的网站上我自己建立了我的文章链接如下:
my_website.com/article/33/some-article
my_website.com/article/213/another-article
说它们大约有1万个。现在,它们仅通过id检索,当已经检索到文章时,将id后面的部分添加到动态URL中。我想把它们改成这样:
my_website.com/article/some-article
my_website.com/article/another-article
因此我需要为“article_friendly_title”添加一个索引。它可能是50个字符长。我想知道,这会带来很多开销,以及它会减慢从db文章进程中获取的速度吗?我猜它会慢得多。尽管如此,有很多网站都有相同类型的产品或文章网址,而且它们看起来还不错。
答案 0 :(得分:0)
大多数数据库实现都使用二叉树作为索引列,这意味着索引列可以在 O(log(n))时间内搜索。在最坏的情况下,该算法将在14次比较中查找数据库中是否存在10,000行的搜索词。
如果您熟悉二进制搜索,或者曾经编写过算法,那么它只会调用大于,小于或等于比较。
索引列的数据类型将产生很小的差异,因为在一个固定长度(甚至50个字符)的字符串上评估大于,小于或等于是一个被视为 O(1)
来源:http://www.programmerinterview.com/index.php/database-sql/what-is-an-index/ https://www.cs.cmu.edu/~adamchik/15-121/lectures/Trees/trees.html
另一个考虑因素,如果您还没有想到,那就是确保您的友好文章名称的唯一名称"列。