MySQL 8.4 發行說明
若要調整 InnoDB
表格的查詢,請在每個表格上建立適當的索引集。詳情請參閱第 10.3.1 節,「MySQL 如何使用索引」。遵循以下 InnoDB
索引的準則
由於每個
InnoDB
表格都有主鍵(無論您是否要求),請為每個表格指定一組主鍵欄位,這些欄位用於最重要且時間要求嚴格的查詢中。不要在主鍵中指定太多或太長的欄位,因為這些欄位值會在每個次要索引中重複。當索引包含不必要的資料時,讀取此資料的 I/O 和快取記憶體會降低伺服器的效能和可擴展性。
不要為每個欄位建立單獨的次要索引,因為每個查詢只能使用一個索引。對很少測試的欄位或只有幾個不同值的欄位建立索引可能對任何查詢都沒有幫助。如果您對同一個表格有很多查詢,測試不同的欄位組合,請嘗試建立少量的串連索引,而不是大量單一欄位索引。如果索引包含結果集所需的所有欄位(稱為涵蓋索引),查詢可能完全能夠避免讀取表格資料。
如果索引的欄位不能包含任何
NULL
值,請在建立表格時將其宣告為NOT NULL
。當最佳化工具知道每個欄位是否包含NULL
值時,它可以更好地判斷哪個索引最適合用於查詢。您可以使用第 10.5.3 節,「最佳化 InnoDB 唯讀交易」中的技術來最佳化
InnoDB
表格的單一查詢交易。