介紹
MySQL 8.0 引入了新特性:失效視圖。失效視圖是一種監測機制,用來檢測視圖的基表是否被修改。當視圖的基表被修改時,視圖被標記為“失效狀態”,并且下一次查詢該視圖時,MySQL 會重新生成視圖的查詢計劃。這有助于確保視圖的查詢計劃與基表的數據一致,提高查詢的性能。
查看失效視圖
要查看失效的視圖,可以使用以下語句:
SELECT TABLE_NAME, CHECK_OPTION, IS_UPDATABLE, STATUS FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = 'database_name' AND CHECK_OPTION = 'CASCADED' AND STATUS = 'INVALID'
該語句返回一個表,其中包含了所有處于失效狀態的視圖信息。其中,CHECK_OPTION
列表示視圖的CHECK OPTION
約束;IS_UPDATABLE
列表示視圖是否可以更新;STATUS
列表示視圖的狀態,如當前是否處于有效狀態。
更新視圖查詢計劃
要使一個失效的視圖重新生成查詢計劃,可以使用以下語句:
SELECT * FROM view_name;
該語句會觸發MySQL重新生成視圖的查詢計劃,并返回視圖的數據。
總結
失效視圖是一項新特性,它可以幫助MySQL監測視圖的基表是否被修改,并重新生成視圖的查詢計劃,確保查詢的性能。要查看失效視圖,可以使用INFORMATION_SCHEMA.VIEWS
表。要使一個失效的視圖重新生成查詢計劃,可以使用SELECT
語句。
下一篇vue手機端開發css