gpt4 book ai didi

mysql - 用 FULLTEXT 索引美化 URL

转载 作者:可可西里 更新时间:2023-11-01 08:37:43 24 4
gpt4 key购买 nike

我目前正在构建一个包含多个页面的网站,为了美化网站的 URL,我使用了类似 http://mydomain.com/category/item-name

的地址

我正在使用 MySQL 表,所以为了从我的 MySQL 中获取当前项目,我有两个选择:

1) 将项目的 ID 添加到标题中:http://mydomain.com/category/28745/item-name(其中 28745 是 table )。这样我就可以运行查询 SELECT * FROM products WHERE ID=28745 。简单的方法,但问题是 URL 有点难看。

2) 使用文本搜索获取项目。在这种情况下,我将使用项目名称作为 FULLTEXT(使用 MyISAM),因此查询将是 SELECT * FROM products WHERE item-name=some-文本 .

我正在尝试找出第二种方法是否有任何缺点。在 INT 字段上使用 FULLTEXT 而不是索引会降低性能吗?如果 URL 由 ID 组成并且有点难看,这对搜索引擎真的重要吗?

谢谢,

梅尔

最佳答案

您不需要全文索引,这是第一件事。FULLTEXT 索引是用于搜索文本数据库的索引。您正在做的是完全匹配,您不是在搜索条目。

也就是说,在文本列上建立索引而不是在整数列上建立索引有什么缺点?

首先是尺寸。整数需要较少的存储空间。他们的索引需要更少的存储空间。为了存储一个整数,您需要 4 个字节(2^32 是范围)。要存储单个 ASCII 字符,您需要 1 个字节。因此,一个包含 4 个以上字母的单词将占用比数字 45 亿更多的空间。

第二件事是,如果出于某种原因你想拥有全文索引,你就不得不使用 MyISAM。与 InnoDB 相比,MyISAM 有优点也有缺点,这是 SO 的一个主题。

简而言之 - 除非您有超过 10 万个类别并且还在增长,除非您需要针对您的类别的高级搜索选项 - 不要使用全文索引,使用常规索引。表引擎由您决定。对于少量数据,它都可以正常工作。

关于mysql - 用 FULLTEXT 索引美化 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6242446/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com