MySql 8新特性

#8性能很好,全内存访问,200W QPS

#查看MySql版本
\s

#账户与安全
-用户的创建和授权
5.7 5.6 一句话 实现 用户的创建 授权语句。 8分开执行。
grant all privileges on *.* to 'guqiang1'@'%' identified by 'Lijin@2022' 
select user,host,plugin from mysql.user;

版本8
create user 'guqiang1'@'%' identified;
grant all privileges on *.* to 'guqiang1'@'%';

-认证插件更新
default-authentication-plugin=mysql_native_password 开启
alter user 'guqiang1'@'%' identified with mysql_native_password by 'guqiang@2023'


-密码管理
重复设相同的密码
查看密码相关参数
show variables like 'password%';
password_history | 0 (0:可以修改相同密码;)
alter user 'guqiang1'@'%' identified by 'guqiang@2023'

设置set persist password_history=3;
alter user 'guqiang1'@'%' password history 3;(不能改成与近三次密码相同)

-角色管理

#索引增强
-隐藏索引
不会被优化器使用,不可见索引。会用到?
1、软删除(老版本index删除(误删)、创建 都会有性能,变成隐藏索引  -- 过段时间,彻底删除)
2、灰度发布(线上测试,加隐藏索引、删除)通过一些设置,在查询优化器执行SQL,把索引生效(针对你的测试),发现这个索引没问题,改成正式索引,生产环境生效
创建隐藏索引:create index j_index on t1(j) invisible;
查看隐藏索引:show index from t1\G;
产看系统参数:select @@optimizer_switch\G(use_invisible_indexes=off -> 默认看不见索引)
当前会话设置(测试的时候):set session optimizer_switch='use_invisible_indexes=on';

设置索引可见:alter table t1 alter index j_index visible;(visible:可见;invisible:不可见)


#降序索引
对比之前查询结果不用再重新排序了

#函数索引
对比前面版本添加函数导致索引失效,可以理解为创建索引的时候生成一列函数索引的数据。

 
#通用表 表达式CTE(common table expression) with
语句:
with recursive xxx_view(id,name) as
(select id, name from table_name where id = ……)
select * from xxx_view order by id;

ps:可以循环执行,不用书写多个union ALL语句

#函数窗口
分析函数、分组、聚合 非常类似
sql语句:
select year, country, product, sum, sum(sum) over (PARTITION BY country) as country_sum from table_name
order by country, year,product, sum;

#普通函数
sum avg max min

#专属函数
- 序号函数:ROW_NUMBER()、RANK()、DENSE_RANK()
- 分布函数:PRCENT_RANK()、CUME_DIST()
- 前后函数:LAG()、LEAD()
- 头尾函数:FIRST_VALUE()、LAST_VALUE()
- 其他函数:NTH_VALUE()、NTILE()

sql示例:
select year, country, product, sum sum(sum) over (PARTITION BY country order by sum rows unbounded preceding) as sum_1 from table_name 
order by country,sum;
ps:rows unbounded preceding -> 累计的总和


#原子DDL操作
drop creat alter 要么都执行,要么都不执行。

#JSON增强

#其他
- 自增持久化
自增计数器放入redo log里,解决了长期以来自增字段可能重复的bug。

- 死锁检查控制
增加了一个新的动态变量,用于控制系统是否执行InnoDB死锁检查。对于高并发的系统,禁用死锁检查可能带来性能的提高。
innodb_deadlock_detect

- 锁定语句选项
SELECT ……FOR SHARE和SELECT ……FOR UPDATE中支持NOWAIT、SKIP LOCKED选项。对于NOWAIT,如果请求的行被其他的事务锁定是,语句立即返回。对于SKIP LOCKED,从返回的结果集中移除被锁定的行。

- InnoDB其他改进功能
支持快速DDL,ALTER TABLE ALGORITHM=INSTANT;
InnoDB临时表使用共享的临时表空间ibtmmp1;
新增金泰变量innodb_dedicated_server,自动配置InnoDB内存参数:innodb_buffer_pool_size/innodb_log_file_size等;
默认创建2个UNDO表空间,不在使用系统表空间;
支持ALTER TABLESPACE … RENAME TO 重命名通用表空间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值