MySQL 9.0 發行說明
針對字元和字串資料行,請遵循以下準則:
當您不需要語言特定的定序功能時,請使用二進位定序順序進行快速比較和排序作業。您可以使用
BINARY
運算子,在特定查詢中使用二進位定序。比較來自不同資料行的值時,請盡可能使用相同的字元集和定序宣告這些資料行,以避免在執行查詢時進行字串轉換。
對於大小小於 8KB 的資料行值,請使用二進位
VARCHAR
而非BLOB
。GROUP BY
和ORDER BY
子句可以產生暫存資料表,如果原始資料表不包含任何BLOB
資料行,則這些暫存資料表可以使用MEMORY
儲存引擎。如果資料表包含名稱和地址等字串資料行,但許多查詢不會擷取這些資料行,請考慮將字串資料行分割到不同的資料表中,並在必要時使用具有外索引鍵的聯結查詢。當 MySQL 從一列擷取任何值時,它會讀取包含該列所有資料行 (以及可能其他相鄰列) 的資料區塊。保持每列較小,僅包含最常用的資料行,可讓每個資料區塊容納更多列。此類精簡資料表可減少常見查詢的磁碟 I/O 和記憶體使用量。
當您在
InnoDB
資料表中使用隨機產生值作為主索引鍵時,請盡可能在前面加上遞增值,例如目前的日期和時間。當連續的主索引鍵值在實體上彼此相鄰儲存時,InnoDB
可以更快地插入和擷取它們。請參閱 第 10.4.2.1 節,「最佳化數值資料」,了解為何數值資料行通常比同等字串資料行更可取的原因。