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