MySQL OSC是MySQL 8.0版本中引入的一種優化器統計收集工具,它可以通過收集統計信息來優化查詢的執行效率,提高MySQL數據庫的性能。
mysql>SET PERSIST optimizer_switch='osctrace=on';
使用以上命令可以把MySQL的OSC功能打開。OSC的工作方式是先收集表的統計信息,然后使用這些統計信息來優化執行計劃。在收集統計信息時,它會掃描整張表并計算不同列的值分布情況,然后存儲到系統表中。為了避免給MySQL造成太多的負擔,在創建索引的過程中也會收集統計信息。
OSC的使用對于查詢效率的提升是非常明顯的。它可以降低查詢的IO操作和CPU消耗,使查詢的響應時間更加快速。但是,使用OSC也會對MySQL系統本身帶來一些負面影響,比如會增加系統表的大小,會占用額外的存儲空間,會使MySQL的啟動時間也稍微變長。
mysql>SELECT * FROM performance_schema.optimizer_trace;
以上命令可以查看MySQL在查詢執行時的優化器統計信息。通過optimizer_trace系統表的數據,我們可以了解MySQL在執行查詢時,是如何選擇執行計劃的,這樣有助于我們更好地優化MySQL的性能。
上一篇mysql or函數