共計 2433 個字符,預(yù)計需要花費 7 分鐘才能閱讀完成。
這篇文章主要講解了“MySQL 8 新特性有哪些”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著丸趣 TV 小編的思路慢慢深入,一起來研究和學(xué)習(xí)“MySQL 8 新特性有哪些”吧!
授權(quán)表現(xiàn)在是 Innodb 表,以前都是 MyISAM 這會活得以下好處:
同時更改多個用戶的時候可能某些成功某些失敗。沒有原子性
現(xiàn)在有原子性要么都成功要么都失敗。13.1.1
默認認證插件為 caching_sha2_password,性能更好更安全 6.4.1.3
支持角色 6.2.10
資源管理器 8.12.5
Innodb 增強
自增字段修改加入 redo 持久化
如果修改的值大于自增則持久化
innodb_deadlock_detect 可以關(guān)閉死鎖檢測
INFORMATION_SCHEMA.INNODB_CACHED_INDEXES 可以查看緩存的數(shù)據(jù)
支持 for update nowait 操作
innodb 使用 mysql 的數(shù)據(jù)字典 14
臨時表存放到 ibtmp1 目錄
分區(qū)表使用 native,支持 online DDL
mysql 系統(tǒng)表和變量現(xiàn)在放到 innodb tablespace 中叫做 mysql.ibd
innodb_undo_log_truncate 默認開啟
innodb_rollback_segments 參數(shù)含義,從全局變?yōu)槊總€ undo 表空間
innodb_max_dirty_pages_pct_lwm 參數(shù)默認值修改為 10
innodb_max_dirty_pages_pct 從 75 增加到 90
innodb_auto_lock_mode 默認設(shè)置為 2,自增鎖降低
innodb_dedicated_server 參數(shù)加入, 默認是 OFF,開啟用于自動配置一些參數(shù),包含:
innodb_buffer_pool_size
innodb_log_file_size
innodb_flush_method
INFORMATION_SCHEMA.INNODB_TABLESPACES_BRIEF 視圖可以查看表空間類型
Innodb 支持原子性 DDL
SDI 加入 Serialized dictionary information (SDI),除了臨時文件和 UNDO 表空間,其他數(shù)據(jù)
文件都包含,SDI 數(shù)據(jù)是一個容易的表元數(shù)據(jù),用于在數(shù)據(jù)字典損壞的情況下直接從表空間中
抽取元數(shù)據(jù),是壓縮格式 JSON
redo 記錄優(yōu)化
開啟獨占的 redo 寫線程
用戶線程將臟數(shù)據(jù)寫入 flush list 使用 relaxed order
新參數(shù)加入
innodb_log_wait_for_flush_spin_hwm: 定義最大平均日志寫入時間
innodb_log_spin_cpu_abs_lwm: 定義最小 CPU 使用總數(shù)
innodb_log_spin_cpu_pct_hwm: 定義最大 CPU 使用總數(shù)
這 3 個參數(shù)需要再研究
innodb_log_buffer_size: 可動態(tài)修改回收內(nèi)存
undo 日志對 small LOB data 支持 8.0.12
瞬間增加字段支持,算法為 ALGORITHM=INSTANT,優(yōu)先使用 INSTANT 算法
新增 temptable 存儲引擎用于參數(shù) internal_tmp_mem_storage_engine 參數(shù),允許的值包含
temptable 默認,memory 是以前的。8.0.13 支持 blob 數(shù)據(jù)類型
關(guān)閉參數(shù) innodb_buffer_pool_in_core_file
8.0.13 用戶建立的臨時表和內(nèi)部臨時表存儲在臨時表空間中,當(dāng) session 斷開的時候
ibtmp1 將會釋放,但是不會將磁盤空間反還給操作系統(tǒng),新增參數(shù) innodb_temp_tablespaces_dir
設(shè)置為 #innodb_tmp 當(dāng) session 斷開的時候?qū)財嗳缓髮⒖臻g釋放到 pool 中,反還給
操作系統(tǒng)。
innodb_dedicated_server 可以動態(tài)分配部分參數(shù) 8.0.14
innodb_buffer_pool_size
innodb_log_file_size
innodb_flush_method
innodb_parallel_read_threads 參數(shù)并行進行聚集索引掃描用于優(yōu)化 check table 性能
如果超過 temptable_max_ram 內(nèi)存大小將會使用臨時文件或者 innodb 表,默認使用 mmap 進行映射文件使用 temptable_use_mmap 進行控制。新增的臨時表引擎 temptable 和老的 memory 作為對比老的還是 tmp_table_size or max_heap_table_size 的大值
innodb_spin_wait_pause_multiplier 參數(shù)加入
innodb_parallel_read_threads 參數(shù)控制并發(fā)執(zhí)行
字符集變化
默認的字符集使用 utf8mb4 而不是 latin1,包含新增的校驗字符集 utf8mb4_ja_0900_as_cs
優(yōu)化器增強
不可見索引
降序索引
函數(shù)索引
類型返回檢測
比如 c 是一個 TINYINT UNSIGNED 占用 1 字節(jié)最大 255 條件使用 c 256 恒成立,如果
c = 255 轉(zhuǎn)換為 c =255
8.0.16 半連接支持 EXISTS 子查詢
8.0.17 反半連接支持 not in/not EXISTS
WITH AS 語法支持
開窗函數(shù)
RANK(), LAG(), NTILE()
配置管理端口
如果達到 max_connections 設(shè)置連接管理端口進行管理
需要配置 admin_address 為 IP 值,默認不開啟
需要配置 admin_port 端口默認 33062
沒有連接限制
需要 SERVICE_CONNECTION_ADMIN 權(quán)限
8.0.17 innodb 歸檔支持
8.0.17 innodb 克隆插件
hostname 支持上限從 60 到 255
感謝各位的閱讀,以上就是“MySQL 8 新特性有哪些”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對 MySQL 8 新特性有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是丸趣 TV,丸趣 TV 小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!