gpt4 book ai didi

mysql - 全文索引结合普通索引

转载 作者:IT王子 更新时间:2023-10-28 23:44:49 25 4
gpt4 key购买 nike

在我的数据库中,我有一个包含 companyId、指向公司和一些文本的表。我想做一个 FULLTEXT 搜索,但由于我总是针对特定的 companyId 提出请求,我想使用组合我的 companyId 和全文索引的复合键。反正有这样做吗?我猜这是不可能的,创建索引以使以下查询最快的最佳方法是什么?

请求永远是

SELECT * FROM textTable 
WHERE companyId = ? (Possibly more conditions) AND
MATCH(value) AGAINST("example")

我应该在整数列上正常创建索引并添加一个全文索引吗?还是应该在索引中包含 value 列?也许两者兼而有之?

最佳答案

根据文本字段的大小,MySQL 会将数据存储到磁盘中,因此将其包含在复合索引中对您没有多大好处。在这种情况下,索引应该只是 companyId,它将具有对 PK 的引用,然后它将解析每个文本字段。

一般的经验法则是尽早过滤,因此最好先按 companyId(int - 4 字节)进行过滤。现在,如果文本字段足够小,您可以将其添加为索引中的第二个值以防止第二次往返,但要了解这将显着影响 INSERT 性能。

如果文本字段很大,这种情况的最佳选择可能是使用 NoSQL 数据库来处理文本查找;他们在这类工作中非常出色。

关于mysql - 全文索引结合普通索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38992707/

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