这可能是一个过于笼统或主观的问题,但我需要帮助,我什至不确定正确和简洁的问题是什么。在过去的几天里,我做了很多谷歌搜索,试图理解这一点,但我比以往任何时候都更加困惑要采取什么方法。
在 MySQL 中,我为产品目录构建了一个数据库。我必须跟踪一些多对多关系,例如产品标签、产品类别,所以我决定需要INNODB
在这些表中使用,以便我可以利用FOREIGN KEY
约束。没关系,但是。INNODB
不支持FULLTEXT
。我读过使用LIKE '%WORD%'
inWHERE
子句的性能很差,因为当通配符在搜索词前面时不能使用索引。数据库在某个时候可能会有很多条目,我不希望搜索永远进行。
那么,一个人如何拥有他们的蛋糕并同时吃掉它呢?我需要选择一个或另一个:FULLTEXT
或FOREIGN KEY
?我是否应该制作一种MYISAM
只包含最相关的搜索列的汇总表,并在 INNODB 表上使用触发器来保持更新?这会不会——至少部分地——FOREIGN KEY
首先破坏使用约束的好处:消除重复和多余的数据?以最佳性能搜索大型数据库的最佳模式是什么 - 至少在使用INNODB
vs.方面MYISAM
?
如果有聪明有经验的人至少可以为我指明正确的方向,我将不胜感激。提前致谢。