对外部表中的列进行全文索引

发布于 2024-10-17 09:42:06 字数 449 浏览 6 评论 0原文

我的整个数据库都在 INNDB 中。我喜欢这些功能,毫无疑问。但是它不允许对 TEXT 类型列进行全文索引。因此,我必须从主表 (INNODB) 中获取当前的 TEXT 列,并创建一个 MYISAM 表并引用回原始表。但由于 MYISAM 不允许 FK 约束,我意识到我造成了一个潜在的弱点。如果原始表索引发生更改,它不会向下级联到 MYISAM 表中。反之亦然,如果我创建从原始表到 MYISAM 表的 FK 链接,并且删除 MYISAM 行,那么我已链接到一个不存在的条目。数据一致性检查根本不存在。

简而言之,INNODB 让我太舒服了,并且为了自己的利益而依赖 FK 约束。

My entire database is in INNDB. I love the features, hands down. However it doesn't allow full text indexing on TEXT-type columns. So I have to take my current TEXT column from my main table (INNODB) and create a MYISAM table and reference back to the original table. But because MYISAM doesn't allow FK constraints I realize I've created a potential weakness. If the original table index changes it won't cascade down into the MYISAM table. Vice versa if I create a FK link from the original table to the MYISAM table, and the MYISAM row is deleted, then I have linked to a nonexistent entry. The data consistency check is simply not there.

In short, INNODB got me too comfortable and dependent on FK constraints for my own good.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

榕城若虚 2024-10-24 09:42:06

我会考虑根本不使用 MyISAM 全文索引,而是在数据库旁边使用适当的搜索引擎。 Lucene/Solr、sphinx 和 xapian 似乎是主要选择(我自己只使用过 Lucene/Solr)。

有关更多信息,请参阅此问题:)

编辑:也这个问题

I would consider not using the MyISAM fulltext indexing at all, and instead using a proper search engine alongside your db. Lucene/Solr, sphinx and xapian seem to be the leading choices (I've only used Lucene/Solr myself).

see this question for more :)

edit: also this question.

紫轩蝶泪 2024-10-24 09:42:06

如果您使用某种框架,该框架可以为您控制引用完整性。 CakePHP 的 Model 类在这方面做得很好。

If you are using some sort of framework, the framework can control the referential integrity for you. CakePHP does a nice job of this with their Model classes.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文