本篇內(nèi)容介紹了“MySQL8.0有什么新特性”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
我們注重客戶提出的每個要求,我們充分考慮每一個細節(jié),我們積極的做好網(wǎng)站設計制作、做網(wǎng)站服務,我們努力開拓更好的視野,通過不懈的努力,創(chuàng)新互聯(lián)建站贏得了業(yè)內(nèi)的良好聲譽,這一切,也不斷的激勵著我們更好的服務客戶。 主要業(yè)務:網(wǎng)站建設,網(wǎng)站制作,網(wǎng)站設計,重慶小程序開發(fā),網(wǎng)站開發(fā),技術開發(fā)實力,DIV+CSS,PHP及ASP,ASP.Net,SQL數(shù)據(jù)庫的技術開發(fā)工程師。
一、MySQL 8.0中添加的功能
1、新的系統(tǒng)字典表
整合了存儲有關數(shù)據(jù)庫對象信息的事務數(shù)據(jù)字典,所有的元數(shù)據(jù)都用InnoDB引擎進行存儲
2、支持DDL 原子操作
InnoDB表的DDL支持事務完整性,要么成功要么回滾,將DDL操作回滾日志寫入到data dictionary 數(shù)據(jù)字典表 mysql.innodb_ddl_log 中用于回滾操作
3、安全和用戶管理
新增caching_sha2_password認證插件,并且是默認的身份認證插件。性能和安全方面加強
權限支持role
新增密碼歷史記錄功能,限制重復使用以前的密碼
4、支持資源管理
支持創(chuàng)建和管理資源組,并允許將服務器運行的線程分配給特定的組,以便線程根據(jù)資源組可用的資源執(zhí)行
5、innodb 增強
自增列優(yōu)化,修復MySQL的bug#199,該bug導致在DB重啟時,MySQL會將表上最大的自增值作為最大值,下次分配是分配max(id)+1,如果是歸檔表或者其它模式刪除數(shù)據(jù)后,DB系統(tǒng)重啟,自增值可能被重用
新增INFORMATION_SCHEMA.INNODB_CACHED_INDEXES,查看每個索引緩存在InnoDB緩沖池中的索引頁數(shù)
InnoDB臨時表都將在共享臨時表空間ibtmp1中創(chuàng)建
對于SELECT ... FOR SHARE和SELECT ... FOR UPDATE語句,InnoDB支持NOWAIT和SKIP LOCKED
innodb_undo_tablespaces的最小值為2,并且不再允許將innodb_undo_tablespaces設置為0。 最小值2確?;貪L段始終在撤消表空間中創(chuàng)建,而不是在系統(tǒng)表空間中創(chuàng)建
支持 ALTER TABLESPACE ... RENAME TO 語法
新增innodb_dedicated_server,讓InnoDB根據(jù)服務器上檢測到的內(nèi)存量自動配置innodb_buffer_pool_size,innodb_log_file_size,innodb_flush_method
新增INFORMATION_SCHEMA.INNODB_TABLESPACES_BRIEF視圖
新增了動態(tài)配置項 innodb_deadlock_detect,用來禁用死鎖檢查,因為在高并發(fā)系統(tǒng)中,當大量線程等待同一個鎖時,死鎖檢查會大大拖慢數(shù)據(jù)庫
支持使用innodb_directories選項在服務器脫機時將表空間文件移動或恢復到新位置
6、MySQL 8.0更好支持文檔型數(shù)據(jù)庫和JSON
7、優(yōu)化
不可見索引,開始支持invisible index,(感覺又和Oracle一樣了),在優(yōu)化SQL的過程中可以設置索引為不可見,優(yōu)化器變不會利用不可見索引
支持降序索引,可以對索引定義 DESC,之前,索引可以被反序掃描,但影響性能,而降序索引就可以高效的完成
8、支持RANK(), LAG()、NTILE()等函數(shù)
9、正則表達式增強,提供了REGEXP_LIKE(),EGEXP_INSTR(), REGEXP_REPLACE(), REGEXP_SUBSTR()等函數(shù)
10、新增備份鎖,允許在線備份期間的DML,同時防止可能導致快照不一致的操作。 備份鎖由LOCK INSTANCE FOR BACKUP和UNLOCK INSTANCE語法支持
11、字符集 默認字符集由latin1變?yōu)閡tf8mb4
12、配置文件增強
MySQL 8.0版本支持在線修改全局參數(shù)持久化,通過加上PERSIST關鍵字,可以將調(diào)整持久化到新的配置文件中,再次重啟db還可以應用到最新的參數(shù)。對于加上 PERSIST 關鍵字修改參數(shù)命令,MySQL系統(tǒng)會生成一個包含json格式數(shù)據(jù)的 mysqld-auto.cnf 文件,比如執(zhí)行:
set PERSIST expire_logs_days=10 ; #內(nèi)存和json文件都修改,重啟還生效
set GLOBAL expire_logs_days=10 ; #只修改內(nèi)存,重啟丟失
系統(tǒng)會在數(shù)據(jù)目錄下生成一個包含如下內(nèi)容的 mysqld-auto.cnf 的文件:
{ "mysql_server": {"expire_logs_days": "10" } }
當 my.cnf 和 mysqld-auto.cnf 同時存在時,后者具有高優(yōu)先級。
13、直方圖
MySQL 8.0 版本開始支持期待已久直方圖。優(yōu)化器會利用column_statistics的數(shù)據(jù),判斷字段的值的分布,得到更準確的執(zhí)行計劃。
可以使用 ANALYZE TABLE table_name [UPDATE HISTOGRAM on col_name with N BUCKETS |DROP HISTOGRAM ON clo_name] 來收集或者刪除直方圖信息
14、支持會話級別SET_VAR 動態(tài)調(diào)整部分參數(shù),有利于提升語句性能。
select /*+ SET_VAR(sort_buffer_size = 16M) */ id from test order id ;
insert /*+ SET_VAR(foreign_key_checks=OFF) */ into test(name) values(1);
15、默認參數(shù)的調(diào)整
調(diào)整back_log的默認值,保持和 max_connections一致,增強突發(fā)流量帶來的連接處理容量。
修改 event_scheduler 默認為ON,之前默認是關閉的。
調(diào)整max_allowed_packet 的默認值,從4M增加到64M。
調(diào)整bin_log,log_slave_updates默認值為on。
調(diào)整expire_logs_days的過期時間為30天,老版本是7天,生產(chǎn)環(huán)境時,檢查該參數(shù),防止binlog過多造成空間緊張。
調(diào)整innodb_undo_log_truncate 默認為ON
調(diào)整innodb_undo_tablespaces 默認值為2
調(diào)整innodb_max_dirty_pages_pct_lwm 默認值10
調(diào)整innodb_max_dirty_pages_pct默認值為90
新增innodb_autoinc_lock_mode 默認值為2
16、InnoDB性能提升
廢除buffer pool mutex,將原來一個mutex拆分成多個,提高并發(fā)
拆分LOCK_thd_list 和 LOCK_thd_remove 這兩個mutex,大約可提高線程鏈接效率5%。
17、行緩存
MySQL8.0的優(yōu)化器可以估算將要讀取的行數(shù),因此可以提供給存儲引擎一個合適大小的row buffer來存儲需要的數(shù)據(jù)。大批量的連續(xù)數(shù)據(jù)掃描的性能將受益于更大的record buffer
18、改進掃描性能
改進InnoDB范圍查詢的性能,可提升全表查詢和范圍查詢 5-20%的性能。
19、成本模型
InnoDB緩沖區(qū)可以估算緩存區(qū)中的有多少表和索引,這可以讓優(yōu)化器選擇訪問方式時知道數(shù)據(jù)是否可以存儲在內(nèi)存中還是必須存儲到磁盤上。
20、重構SQL分析器
改進SQL分析器。舊的分析器由于其語法復雜性和自頂向下的分析方式從而有嚴重的限制,導致難以維護和擴展。
二、MySQL8.0中被廢棄的特性
廢棄validate_password 插件
廢棄ALTER TABLESPACE和DROP TABLESPACE ENGINE子句
廢棄JSON_MERGE() -> JSON_MERGE_PRESERVE()取代
廢棄 have_query_cache 系統(tǒng)變量
三、MySQL8.0被移除的功能
query cache 功能被移除,相關的系統(tǒng)變量也被移除
mysql_install_db 被 mysqld --initialize or --initialize-insecure 替代
INFORMATION_SCHEMA下的INNODB_LOCKS和INNODB_LOCK_WAITS表已被刪除。 用Performance Schema data_locks和data_lock_waits表替代
INFORMATION_SCHEMA下的四張表移除:GLOBAL_VARIABLES, SESSION_VARIABLES, GLOBAL_STATUS, SESSION_STATUS
InnoDB不再支持壓縮的臨時表。
不再支持 PROCEDURE ANALYSE()語法
Renamed InnoDB Information Schema Views
Old Name New Name
INNODB_SYS_COLUMNS INNODB_COLUMNS
INNODB_SYS_DATAFILES INNODB_DATAFILES
INNODB_SYS_FIELDS INNODB_FIELDS
INNODB_SYS_FOREIGN INNODB_FOREIGN
INNODB_SYS_FOREIGN_COLS INNODB_FOREIGN_COLS
INNODB_SYS_INDEXES INNODB_INDEXES
INNODB_SYS_TABLES INNODB_TABLES
INNODB_SYS_TABLESPACES INNODB_TABLESPACES
INNODB_SYS_TABLESTATS INNODB_TABLESTATS
INNODB_SYS_VIRTUAL INNODB_VIRTUAL
remove的server選項:
--temp-pool
--ignore-builtin-innodb
--des-key-file
--log-warnings
--ignore-db-dir
remove的配置選項:
innodb_file_format
innodb_file_format_check
innodb_file_format_max
innodb_large_prefix
remove的系統(tǒng)變量
information_schema_stats ->information_schema_stats_expiry
ignore_builtin_innodb
innodb_support_xa
show_compatibility_56
have_crypt
date_format
datetime_format
time_format
max_tmp_tables
global.sql_log_bin(session.sql_log_bin保留)
log_warnings ->log_error_verbosity
multi_range_count
secure_auth
sync_frm
tx_isolation -> transaction_isolation
tx_read_only -> transaction_read_only
ignore_db_dirs
query_cache_limit
query_cache_min_res_unit
query_cache_size
query_cache_type
query_cache_wlock_invalidate
innodb_undo_logs -->innodb_rollback_segments
remove的狀態(tài)變量
Com_alter_db_upgrade
Slave_heartbeat_period
Slave_last_heartbeat
Slave_received_heartbeats
Slave_retried_transactions, Slave_running
Qcache_free_blocks
Qcache_free_memory
Qcache_hits
Qcache_inserts
Qcache_lowmem_prunes
Qcache_not_cached
Qcache_queries_in_cache
Qcache_total_blocks
Innodb_available_undo_logs status
remove的函數(shù)
JSON_APPEND() --> JSON_ARRAY_APPEND()
ENCODE()
DECODE()
DES_ENCRYPT()
DES_DECRYPT()
remove的client選項:
--ssl --ssl-verify-server-cert 被刪除,用--ssl-mode=VERIFY_IDENTITY |REQUIRED |DISABLED 替代
--secure-auth
“MySQL8.0有什么新特性”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
新聞名稱:MySQL8.0有什么新特性
文章URL:http://aaarwkj.com/article22/pegjjc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、品牌網(wǎng)站制作、響應式網(wǎng)站、營銷型網(wǎng)站建設、企業(yè)建站、標簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)