首先,我不得不說這個話題是非常普遍的話題。我已經研究過所有相關的主題,但我找不到答案。 我有三張桌子。消息表有300.000,標記表有100萬,message_tag表有大約1000萬行。 message_tag.message_id和message_tag.tag_id列具有索引。我的目的是選擇鏈接一個spesified標籤的消息。但查詢時間太長。沒有任何查詢時間少於20秒。另一方面,由於查詢時間過長,有時查詢甚至不會給出結果。表結構和我的查詢如下。我該如何處理這個問題?我打開所有建議。即使我可以用新的模式重新創建表格。數據庫是MySql,存儲電機是MyIsam。 。MySQL中的查詢優化
table name: messages
columns :
id (int)
message (vharchar)
message_poster (vharchar)
table name: tags
id (int)
tag (vharchar)
table name : message_tag
columns :
message_id (int)
tag_id (int)
我的查詢:
SELECT messages.message_poster,
messages.message
FROM tags, messages, message_tag
WHERE message_tag.tag_id=191
AND messages.id= message_tag.message_id
您已閱讀所有相關主題,但您是否找到關於「索引」的任何內容?如果你能告訴我們你有什麼指數(指數?),請這樣做。如果你不能,找出它們是什麼,以及如何應用它們:D – Nanne
請提供'SHOW CREATE TABLE messages','SHOW CREATE TABLE tags'和'SHOW CREATE TABLE message_tag'的輸出。 – RandomSeed
你好嗎?使用'標籤'表?它在你的列表中,但不在你的「select」或「where」子句中。 –