請考慮您擁有一個名爲「user」的MySQL表,其中有數百萬行具有以下結構的行,並且沒有任何索引。我該如何改進此查詢的性能?
TABLE: user_id (PK) email name signup_date
我們要執行以下查詢:
SELECT user_id
FROM user
WHERE email=’[email protected]’ AND name=’Olivier Cabanes’
- 如何MySQL的處理速度的術語,查詢?
- 如何提高查詢的性能?
請考慮您擁有一個名爲「user」的MySQL表,其中有數百萬行具有以下結構的行,並且沒有任何索引。我該如何改進此查詢的性能?
TABLE: user_id (PK) email name signup_date
我們要執行以下查詢:
SELECT user_id
FROM user
WHERE email=’[email protected]’ AND name=’Olivier Cabanes’
您需要電子郵件地址和名稱的指標,否則將需要去通表的每一行,將是很慢...
非常感謝你 – user1742195
沒有問題,只需檢查「答案」複選框... –
其實,在大多數情況下,電子郵件或名稱索引將工作。這些在識別個體方面非常獨特。您最終可能會在2或3頁中進行掃描,但性能會很好。 –
把一個指數要麼電子郵件地址或姓名。兩者都不需要索引,因爲兩者基本上都是獨一無二的。
「通過添加索引」是否太過分了? – ruakh