使用高效AND 搜尋進行標記的資料庫設計
要設計一個支援高效AND 搜尋的標記資料庫,我們需要考慮以下要求:
傳統上,JOIN 可用於實現標記功能,但在處理大量標記時,這種方法變得不切實際。要克服此限制,請考慮以下解決方案:
實體屬性值(EAV) 模型
EAV 模型將資料分為三個表:
此模型透過為值表中的每個標籤建立單獨的欄位來實現高效率的搜尋查詢。每個項目在「值」表中可以有多行,每個項目對應一個標籤。要執行 AND 搜索,只需在所有所需標籤列上指定條件即可。
位集方法
此方法使用位集來表示標籤是否存在對於每個項目。為每個標籤分配一個位,並且每個項目都有對應的位集。要執行 AND 搜索,可以對指定標籤的位元集使用二元運算(例如位元 AND)。
效能測試參考
進一步了解見解,請參閱以下資源:
請注意,引用的來源提供了具體的性能對 MySQL 的評估,自發布以來可能提高了其全文索引能力。
以上是如何設計資料庫以對標籤進行高效率的 AND 搜尋?的詳細內容。更多資訊請關注PHP中文網其他相關文章!