首頁 >資料庫 >mysql教程 >如何讓MySQL使用索引進行視圖查詢?

如何讓MySQL使用索引進行視圖查詢?

Barbara Streisand
Barbara Streisand原創
2024-11-12 01:19:02736瀏覽

How Can I Get MySQL to Use Indices for View Queries?

讓 MySQL 使用索引進行視圖查詢

查詢: 我如何鼓勵 MySQL 使用索引來檢視查詢?

答案:雖然在 MySQL 中使用視圖可能並不理想,但是當提供適當的索引結構時,MySQL 可以利用索引進行視圖查詢。

詳細說明:

MySQL 的視圖查詢是不同的來自其他資料庫,因為最佳化器不會將謂詞從外部查詢「推送」到視圖查詢。在這種情況下,外部查詢會在發生的_in上進行過濾,但MySQL在執行視圖查詢時不會套用此篩選器。

因此,視圖查詢被單獨處理,建立臨時表(派生表) 。當外部查詢執行時,它使用派生表作為行來源,然後評估發生的_in = 2006 謂詞。

為了提高效能,可以定義覆蓋索引:

該索引包括視圖查詢中引用的所有列,其中player作為前導列(相等謂詞),後跟發生的_in (GROUP BY)。包含分數使索引成為覆蓋索引,允許 MySQL 單獨從索引檢索所有必要的資料。

或者,考慮使用不使用派生表的獨立查詢,這在某些情況下可以提供更好的性能:

通過此修改和適當的覆蓋索引,MySQL應該能夠優化視圖查詢,透過利用可用索引顯著提高效能。

以上是如何讓MySQL使用索引進行視圖查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn