MySQL 8 0 20 穩定版已於4月27日發布

2021-10-06 00:15:27 字數 2261 閱讀 7866

現在已不贊成 使用values()來訪問insert ... on duplicate key update語句中的新行值 ,並且在將來的mysql版本中可能會刪除該用法。相反,您應該為新行及其列使用​​別名,如mysql 8.0.19及更高版本中所實現。

-- 例如,此處顯示的語句 values()用於訪問新的行值:

insert into t1 (a,b,c) values (1,2,3),(4,5,6)

on duplicate key update c=values(a)+values(b);

-- 此後,您應該改為使用類似於以下內容的語句,該語句為新行使用別名:

insert into t1 (a,b,c) values (1,2,3),(4,5,6) as new

on duplicate key update c = new.a+new.b;

-- 或者,您可以為新行及其每一列都使用別名,如下所示:

insert into t1 (a,b,c) values (1,2,3),(4,5,6) as new(m,n,p)

on duplicate key update c = m+n;

innodb:改進了 競爭感知事務排程(cats)演算法,該演算法優先考慮等待鎖的事務。現在,事務排程權重計算完全在單獨的執行緒中執行,從而提高了計算效能和準確性。

刪除了也用於事務排程的先進先出(fifo)演算法。cats演算法的增強使fifo演算法變得多餘。以前由fifo演算法執行的事務排程現在由cats演算法執行。

trx_schedule_weight在information_schema.innodb_trx 表中新增了 乙個列 ,該列允許查詢由cats演算法分配的事務排程權重。

innodb_metrics新增了 以下計數器來監視**級事務排程事件:

lock_rec_release_attempts

嘗試釋放記錄鎖定的次數。

lock_rec_grant_attempts

授予記錄鎖定的嘗試次數。

lock_schedule_refreshes

分析等待圖表以更新交易計畫權重的次數。

innodb: 雙寫緩衝區的儲存區已從系統表空間移至雙寫檔案。將雙寫緩衝區儲存區移出系統表空間可減少寫延遲,增加吞吐量並在雙寫緩衝區頁的放置方面提供靈活性。為高階雙寫緩衝區配置引入了以下系統變數:

innodb_doublewrite_dir

定義雙寫緩衝區檔案目錄。

innodb_doublewrite_files

定義雙寫檔案的數量。

innodb_doublewrite_pages

定義批量寫入時每個執行緒的最大雙寫頁數。

innodb_doublewrite_batch_size

定義要批量寫入的雙寫頁面數。

---------------------------------------------

explain analyze現在可以使用kill query或 ctrl-c在執行期間停止 。

explain format=tree現在顯示inversion 視窗功能的資訊。

explain format=tree輸出已得到改進,以提供有關評估的視窗函式的更多資訊,並與為常規聚合提供的資訊相匹配。

explain analyze現在支援該 format選項。當前 tree是唯一受支援的格式。

---------------------------------------------

從mysql 8.0.20開始,可以在mysql伺服器例項上啟用二進位制日誌事務壓縮。啟用二進位制日誌事務壓縮後,將使用zstd演算法壓縮事務有效負載,然後將其作為單個事件(a transaction_payload_event)寫入伺服器的二進位制日誌檔案 。壓縮後的事務有效負載在複製流中傳送到複製從屬裝置,其他組複製組成員或客戶端(例如mysqlbinlog)時,保持壓縮狀態 。它們不會被接收執行緒解壓縮,並且仍以其壓縮狀態寫入中繼日誌。因此,二進位制日誌事務壓縮既可以節省事務的始發者,也可以節省接收者(及其備份)的儲存空間,並在伺服器例項之間傳送事務時節省網路頻寬。

使用binlog_transaction_compression系統變數(預設為off)在mysql伺服器例項上啟用二進位制日誌事務壓縮。還可以使用binlog_transaction_compression_level_zstd系統變數來設定用於壓縮的zstd演算法的級別。此值確定壓縮工作量,從1(最小工作量)到22(最大工作量)。

---------------------------------------------

修正了多個bug和影響效能的**實現。

MySQL 8 0 20詳細安裝教程

mysqld 設定3306埠 port 3306 自定義設定mysql的安裝目錄,即解壓mysql壓縮包的目錄 需要按自身情況進行修改 basedir e mysql 8.0.20 winx64 自定義設定mysql資料庫的資料存放目錄 需要按自身情況進行修改 datadir e mysqldate...

docker單機部署 mysql8 0 20

主機新建my.cnf配置檔案 mysqld user mysql character set server utf8 default authentication plugin mysql native password secure file priv var lib mysql sql mode...

MySQL 8 0 18 穩定版發布

mysql 8.0.18 穩定版 ga 已於昨日正式發布,hash join 也如期而至。快速瀏覽一下這個版本的亮點!1.hash join hash join 不需要任何索引來執行,並且在大多數情況下比當前的塊巢狀迴圈演算法更有效。2.explain analyze explain analyze...