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