偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

MySQL 8.0備受矚目的新特性大放送!

數(shù)據(jù)庫(kù) MySQL
MySQL于2016-09-12正式發(fā)布8.0 DM 版本到現(xiàn)在的 8.0.3 RC版本,進(jìn)度還是蠻快的。本文從字符集、數(shù)據(jù)庫(kù)管理、性能優(yōu)化、安全等方面為大家匯總介紹 8.0 版本的比較吸引人的新特性,詳細(xì)的新的功能 特性還需要去官方文檔查看。

MySQL 8.0備受矚目的新特性大放送!

MySQL于 2016-09-12正式發(fā)布8.0 DM 版本到現(xiàn)在的 8.0.3 RC版本,進(jìn)度還是蠻快的。對(duì)Oracle比較了解的朋友看到最近的MySQL 8.0的功能,會(huì)有一致的想法:在Oracle的帶領(lǐng)下MySQL越來(lái)越像Oracle,包括安裝包也越來(lái)越大。

本文從字符集、數(shù)據(jù)庫(kù)管理、性能優(yōu)化、安全等方面為大家匯總介紹 8.0 版本的比較吸引人的新特性,詳細(xì)的新的功能 特性還需要去官方文檔查看。

新的系統(tǒng)字典表

由于MySQL采用Server層和插件式存儲(chǔ)引擎層的架構(gòu)模式,在Server層MySQL為每個(gè)表創(chuàng)建frm文件來(lái)保存表定義相關(guān)的元數(shù)據(jù)信息。

然而部分存儲(chǔ)引擎(比如InnoDB)本身也會(huì)存儲(chǔ)元數(shù)據(jù),這樣不僅產(chǎn)生了元數(shù)據(jù)冗余,而且由于Server層和引擎層各自管理表的元數(shù)據(jù),在執(zhí)行DDL類似的操作時(shí),遇到異常情況,系統(tǒng)很難做到crash-safe,DDL操作也做不到原子性。

從MySQL 8.0 開(kāi)始采用新的Data Dictionary 系統(tǒng),所有的元數(shù)據(jù)都用InnoDB引擎進(jìn)行存儲(chǔ),使用新的系統(tǒng)帶來(lái)如下好處:

  1. 解決DDL的原子性問(wèn)題。
  2. 支持事務(wù)型的字典存儲(chǔ)系統(tǒng)和crash safe 。
  3. 去掉基于文件的元數(shù)據(jù)存儲(chǔ),比如表定義文件frm文件及其他server層的元數(shù)據(jù)文件(frm, par, trn, trg,isl, db.opt)
  4. 支持使用統(tǒng)一集中的緩存系統(tǒng)來(lái)緩存數(shù)據(jù)字典信息。

新的Information Schema定義

MySQL 8.0版本使用視圖重構(gòu)I_S 庫(kù)中的表,隱藏了系統(tǒng)表,通過(guò)查詢物理表的方式避免了為I_S查詢創(chuàng)建臨時(shí)表(臨時(shí)表的操作包含了server層創(chuàng)建frm, 引擎層獲取數(shù)據(jù)or需要鎖保護(hù)的全局?jǐn)?shù)據(jù)),查詢性能大幅度提升。

有興趣的朋友可以閱讀官方團(tuán)隊(duì)的文章新的IS系統(tǒng)帶來(lái)的性能提升。

  • http://mysqlserverteam.com/mysql-8-0-scaling-and-performance-of-information_schema/?spm=5176.100239.blogcont61286.10.f8hlVB
  • http://mysqlserverteam.com/mysql-8-0-improvements-to-information_schema/?spm=5176.100239.blogcont61286.9.f8hlVB

角色管理

增加角色role,看到這里Oracle DBA朋友是不是覺(jué)得似曾相識(shí)。角色是一些列權(quán)限的集合,可以給某個(gè)用戶授予和回收角色,使用角色可以更方便進(jìn)行權(quán)限管理。參考一個(gè)簡(jiǎn)單的例子:

創(chuàng)建role

  1. CREATE ROLE 'app_read''app_write'

給role賦權(quán)

  1. GRANT SELECT ON app_db.* TO 'app_read'
  2.  
  3. GRANT INSERTUPDATEDELETE ON app_db.* TO 'app_write' 

創(chuàng)建用戶

  1. CREATE USER 'ro_user'@'localhost' IDENTIFIED BY 'read_user1pass'
  2.  
  3. CREATE USER 'rw_user'@'localhost' IDENTIFIED BY 'rw_user1pass' 

給用戶賦予角色

  1. GRANT 'app_read' TO 'ro_user'@'localhost'
  2.  
  3. GRANT 'app_read','app_write' TO 'rw_user'@'localhost'; ##將兩種角色的權(quán)限賦予賬號(hào)  

說(shuō)點(diǎn)自己的關(guān)于role的想法,對(duì)于精細(xì)化管理的MySQL運(yùn)維系統(tǒng)會(huì)基于業(yè)務(wù)來(lái)區(qū)分權(quán)限,role的用處可能用處不大。但是對(duì)于很多庫(kù)混合在一起的實(shí)例場(chǎng)景,又有不同的開(kāi)發(fā)同學(xué)需要申請(qǐng)個(gè)人賬戶訪問(wèn)db,可以通過(guò)role類維護(hù)權(quán)限分配。

配置文件

MySQL 8.0版本支持在線修改全局參數(shù)持久化,通過(guò)加上PERSIST關(guān)鍵字,可以將調(diào)整持久化到新的配置文件中,再次重啟db還可以應(yīng)用到***的參數(shù)。對(duì)于加上 PERSIST 關(guān)鍵字修改參數(shù)命令,MySQL系統(tǒng)會(huì)生成一個(gè)包含json格式數(shù)據(jù)的 mysqld-auto.cnf 文件,比如執(zhí)行:

  1. set globa sync_binlog=1; 

系統(tǒng)會(huì)生成一個(gè)包含如下內(nèi)容的 mysqld-auto.cnf 的文件:

  1. "mysql_server": {"sync_binlog""1" } } 

當(dāng) my.cnf 和 mysqld-auto.cnf 同時(shí)存在時(shí),后者具有高優(yōu)先級(jí)。

自增列優(yōu)化

其實(shí)這個(gè)不算是新特性,而是解決了之前一個(gè)歷史悠久的bug(bugid為199).MySQL 8.0 版本之前InnoDB初始化AUTO_INCREMENT的方式:在DB重啟時(shí),MySQL會(huì)將表上***的自增值作為***值,下次分配是分配max(id)+1,如果是歸檔表或者其它模式刪除數(shù)據(jù)之后,DB系統(tǒng)重啟,自增值可能被重用。

8.0 版本不再重置auto_increment 的值,直接復(fù)用重啟之前的***值,具體解決方法請(qǐng)移步WL#7816

http://dev.mysql.com/worklog/task/?spm=5176.100239.blogcont60885.10.7NgPbk&id=7816

InnoDB 優(yōu)化

1、直方圖

MySQL 8.0 版本開(kāi)始支持期待已久直方圖。優(yōu)化器會(huì)利用存儲(chǔ)在I_S的column_statistics的數(shù)據(jù),判斷字段的值的分布,得到更準(zhǔn)確的執(zhí)行計(jì)劃。我們可以使用

  1. ANALYZE TABLE table_name [UPDATE HISTOGRAM|DROP HISTOGRAM] 

來(lái)收集或者刪除直方圖信息。

2、不可見(jiàn)索引

開(kāi)始支持invisible index,(是不是感覺(jué)又和Oracle一樣了),在優(yōu)化SQL的過(guò)程中可以設(shè)置索引為不可見(jiàn),優(yōu)化器變不會(huì)利用不可見(jiàn)索引。另外如果對(duì)于具有歷史原因的表,不清楚到底用不用索引,可以設(shè)置索引為不可見(jiàn),觀察一段時(shí)間再將索引下線。使用該功能的時(shí)候記得檢查optimizer_switch中use_invisible_indexes參數(shù)是否為off。如果是on 優(yōu)化器在優(yōu)化的時(shí)候會(huì)依然使用不可見(jiàn)索引。

3、支持會(huì)話級(jí)別SET_VAR 動(dòng)態(tài)調(diào)整部分參數(shù),有利于提升語(yǔ)句性能。

  1. select /*+ SET_VAR(sort_buffer_size = 16M) */ name from people order y name
  2.  
  3. insert /*+ SET_VAR(foreign_key_checks=OFF) */ into t2 values(2);  

拆或者刪除mutex鎖

對(duì)MySQL 技術(shù)發(fā)展比較了解的朋友肯定知道解決高并發(fā)的問(wèn)題常用的手段就是“拆鎖和移除鎖”。 MySQL 8.0版本使用多個(gè)更細(xì)粒度的mutex代替buffer pool mutex這把大鎖。

具體的替換方式如下:

- LRU_list_mutex for the LRU_list;

- zip_free mutex for the zip_free arrays;

- zip_hash mutex for the zip_hash hash and in_zip_hash flag;

- free_list_mutex for the free_list and withdraw list.

通過(guò)對(duì)鎖的拆分,降低了全局鎖的競(jìng)爭(zhēng),提升了申請(qǐng)buffer pool的并發(fā)處理能力。

行緩存

MySQL 8.0 版本的優(yōu)化器可以估算將要讀取的行數(shù),因此可以提供給存儲(chǔ)引擎一個(gè)合適大小的row buffer來(lái)存儲(chǔ)需要的數(shù)據(jù)。大批量的連續(xù)數(shù)據(jù)掃描的性能將受益于更大的record buffer。

臨時(shí)表

取消對(duì)壓縮臨時(shí)表的支持,并存儲(chǔ)臨時(shí)表的元數(shù)據(jù)到內(nèi)存中,提高性能 。

字符集

默認(rèn)字符集由 latin1 修改為 utf8mb4,并增加支持 Unicode 9 ,字符集校驗(yàn)相應(yīng)的修改為utf8mb4_800_ci_ai (大小寫不敏感)。

另外一個(gè)大小寫敏感的校驗(yàn)字符集是utf8mb4_ru_0900_as_cs。

默認(rèn)參數(shù)

  1. 修改back_log的默認(rèn)值,保持和 max_connections一致,增強(qiáng)突發(fā)流量帶來(lái)的連接處理容量。
  2. 修改 event_scheduler 默認(rèn)為ON,之前默認(rèn)是關(guān)閉的??磥?lái)MySQL以后推薦大家使用任務(wù)job 這個(gè)功能了,對(duì)于規(guī)?;\(yùn)維需要有一套平臺(tái)工具為做管理,否則人員的流動(dòng)會(huì)帶來(lái) 穩(wěn)定性上面的風(fēng)險(xiǎn)。
  3. 調(diào)整max_allowed_packet 的默認(rèn)值,從4M增加到64M,其實(shí)推薦512M 并且朱備庫(kù)一定要保持一致,否則異常斷電的情況下會(huì)報(bào)1236錯(cuò)誤。
  4. 調(diào)整bin_log,log_slaves_update默認(rèn)值為on。
  5. 增加binlog的過(guò)期時(shí)間為30天,老版本是7天,以后上生產(chǎn)環(huán)境時(shí),請(qǐng)務(wù)必檢查該參數(shù),防止binlog過(guò)多造成空間緊張。

支持DDL 原子操作

InnoDB表的DDL支持事務(wù)完整性,要么成功要么回滾,將DDL操作回滾日志寫入到data dictionary 數(shù)據(jù)字典表 mysql.innodb_ddl_log 中用于回滾操作。

總結(jié)

本文例舉了MySQL 8.0 部分新特性或者功能,更加細(xì)節(jié)的知識(shí)歡迎閱讀官方手冊(cè) https://dev.mysql.com/doc/relnotes/mysql/8.0/en/preface.html。

從上面的功能特性來(lái)看MySQL不斷向前發(fā)展,解決了很多DBA的日常問(wèn)題,希望能夠盡快GA。 

責(zé)任編輯:龐桂玉 來(lái)源: DBAplus社群
相關(guān)推薦

2010-03-30 17:08:30

Nginx服務(wù)器

2010-03-04 11:11:05

互聯(lián)網(wǎng)

2010-11-02 15:36:30

jQuery

2016-03-07 13:08:13

下一代防火墻NSS Labs山石網(wǎng)科

2010-07-22 10:28:59

Web開(kāi)發(fā)IDE

2014-08-25 14:40:22

百加域名

2014-01-10 14:08:57

WLAN速度優(yōu)化

2020-12-28 15:08:27

開(kāi)發(fā)C 語(yǔ)言編程

2012-05-10 10:55:03

CSS

2018-10-25 12:01:37

機(jī)房搬遷要點(diǎn)

2020-10-29 10:43:24

網(wǎng)絡(luò)安全支付寶電子錢包

2009-02-02 14:25:45

軟件 芮祥麟 SAP

2021-05-11 10:30:34

數(shù)字化

2016-11-11 19:51:35

2011-11-24 09:13:16

CSS

2012-01-09 16:43:13

點(diǎn)心通訊錄

2009-03-25 16:54:10

Linux軟件免費(fèi)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)