mysql+8.0+新特性_MySQL 8.0新特性

MySQL 8.0版本支持在线修改全局参数持久化,通过加上PERSIST关键字,可以将调整持久化到新的配置文件中,再次重启db还可以应用到最新的参数。对于加上 PERSIST 关键字修改参数命令,MySQL系统会生成一个包含json格式数据的 mysqld-auto.cnf 文件,比如执行:

set PERSIST  expire_logs_days=10 ; #内存和json文件都修改,重启还生效

set GLOBAL  expire_logs_days=10 ; #只修改内存,重启丢失

系统会在数据目录下生成一个包含如下内容的 mysqld-auto.cnf 的文件:

{ "mysql_server": {"expire_logs_days": "10" } }

当 my.cnf 和 mysqld-auto.cnf 同时存在时,后者具有高优先级。

13、直方图

MySQL 8.0 版本开始支持期待已久直方图。优化器会利用column_statistics的数据,判断字段的值的分布,得到更准确的执行计划。

可以使用 ANALYZE TABLE table_name [UPDATE HISTOGRAM on col_name with N BUCKETS |DROP HISTOGRAM ON  clo_name] 来收集或者删除直方图信息

14、支持会话级别SET_VAR 动态调整部分参数,有利于提升语句性能。

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、默认参数的调整

调整back_log的默认值,保持和 max_connections一致,增强突发流量带来的连接处理容量。

修改 event_scheduler 默认为ON,之前默认是关闭的。

调整max_allowed_packet 的默认值,从4M增加到64M。

调整bin_log,log_slave_updates默认值为on。

调整expire_logs_days的过期时间为30天,老版本是7天,生产环境时,检查该参数,防止binlog过多造成空间紧张。

调整innodb_undo_log_truncate 默认为ON

调整innodb_undo_tablespaces 默认值为2

调整innodb_max_dirty_pages_pct_lwm 默认值10

调整innodb_max_dirty_pages_pct默认值为90

新增innodb_autoinc_lock_mode 默认值为2

16、InnoDB性能提升

废除buffer pool mutex,将原来一个mutex拆分成多个,提高并发

拆分LOCK_thd_list 和 LOCK_thd_remove 这两个mutex,大约可提高线程链接效率5%。

17、行缓存

MySQL8.0的优化器可以估算将要读取的行数,因此可以提供给存储引擎一个合适大小的row buffer来存储需要的数据。大批量的连续数据扫描的性能将受益于更大的record buffer

18、改进扫描性能

改进InnoDB范围查询的性能,可提升全表查询和范围查询 5-20%的性能。

19、成本模型

InnoDB缓冲区可以估算缓存区中的有多少表和索引,这可以让优化器选择访问方式时知道数据是否可以存储在内存中还是必须存储到磁盘上。

20、重构SQL分析器

改进SQL分析器。旧的分析器由于其语法复杂性和自顶向下的分析方式从而有严重的限制,导致难以维护和扩展。

二、MySQL8.0中被废弃的特性废弃validate_password 插件

废弃ALTER TABLESPACE和DROP TABLESPACE ENGINE子句

废弃JSON_MERGE()  -> JSON_MERGE_PRESERVE()取代

废弃 have_query_cache 系统变量

三、MySQL8.0被移除的功能query cache 功能被移除,相关的系统变量也被移除

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的系统变量

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的状态变量

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的函数

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

参考:https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html#mysql-nutshell-additions

MySQL 8.0新特性

标签:MySQL8.0新特性

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:http://blog.51cto.com/395469372/2072691

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值