假设我有两个表stuff
和search_index
。由于各种原因,我更愿意生成一个自定义索引表,其中包含以下行的模式。
我认为这必须是一个单独的表,因为它需要MyISAM
存储引擎才能支持FULLTEXT。我的所有其他表都是InnoDB
用于事务支持。
search_index (MyISAM):
-----------------------
stuff_id BIGINT PRIMARY
keywords TEXT FULLTEXT ; Not same as text in `stuff`
; (optimised & space delimited)
search_index
表的更新频率:
每当创建或更新stuff
条记录时。
定期扫描“脏”stuff
条记录并相应更新search_index
。
其他...
我的观点是 1 的好处会更容易维护,搜索会立即生效,但数据库中会立即重新编制索引。 2 不会那么有效,但所有重建索引都可以在一次点击中发生。这是真的吗?
MySQL在插入/更新具有FULLTEXT索引的记录时效率如何?
附加说明:我试图尽可能保持架构的可移植性(带PDO的不同rdbms驱动程序)