我有一個數據庫有兩個表:它們構造如頁面和標籤如下:全文VS ID搜索速度與MySQL
- 網頁:PAGE_ID,page_text,(在任何時候圍繞60000條記錄)page_tags
- 標籤:TAG_ID,tag_text
(約30萬條記錄,在任何時間)
每一頁都與多個標籤(使用page_tags列)相關聯。我的問題是關於pages.page_tags,尤其是哪種方式對於存儲上述關聯最有效?
一種方式將全文索引page.page_tags和存儲相關的標籤的文字出現,例如:蘋果果粒橙果醬
第二方法是也全文索引頁。 page_tags但存儲相關聯的標籤的ID,例如:132 14 24192 14
第三種方式是使第三個表:tag_assoc,結構如下:
tag_assoc:PAGE_ID,TAG_ID
(其中對於存在於網頁中的每個標籤將存在一個記錄與頁面的兩個ID和標籤)
你認爲哪是最高效的方式? 特別是關於:
- A)搜索速度之類的查詢: 「給我拿把每一個有標籤頁: 蘋果和橘子」
- B)的表的更新。一個新的 頁面可能經常到達數據庫 。這意味着如果在標籤表中不存在的某些頁面中找到新的 標籤,我將不得不將其添加到標籤表 。
如果他們都不是,你會建議什麼?
感謝你們。兩個答案同樣有幫助,所以我只能接受那個答案更快的答案 – Alexandros 2010-12-19 21:33:21