为了控制这个新的行为(从库上数据回放顺序),可新增选项 "binlog_transaction_dependency_tracking”,它可以取以下三个值: COMMIT_ORDER:默认值,它使用 关于持久性设置,除了将 innodb_flush_log_at_trx_commit 设置为 2 ,其他均保留默认值(所以,sync_binlog=1 —— 这是 MySQL 8.0 中的新默认值,启用 这里有两个注意事项: 1、这个特性是向后兼容的,所以 5.7 的从库也能从中获益; 2、请注意 MySQL 8.0 依然是 beta 版本,我们不鼓励您在生产环境中使用测试版,尽管你非常需要这些新功能。 MySQL 复制的其他变化 除了最有趣的 writesets 新特性,MySQL 8.0 中关于 MySQL 复制的其他变化也是值得关注的。我们来看看其他的一些重要变化。 到目前为止,所有 8.0 版本都添加了这些特性。
PHP8.0 目前php8.0还在测试阶段.正式版大概12月份出来.先来看一下新版本的改进或新特性. 1. 字符串是否以某个字符串开头 $found = 'Hello'; if (substr($str,0,count($found)) == $found){ echo 'Yes'; } // 3. 字符串是否以某个字符串开头 if (str_starts_with($str,"Hello")){ echo 'Yes'; } // 3. 字符串是否以某个字符串结尾 if (str_end_with($str,'Hello')){ echo 'Yes'; } 对比: 新版本会更加方便.更加语义化.表达的意思更加清晰. 3.
---- 本文关键字:memcached 相关推荐文章: 新特性解读 | 趋近完美的 Undo 空间 新特性解读 | 8.0 新增 DML 语句(TABLE & VALUES) 一款优秀的缓存系统 memcache MySQL 8.0 —— 新增特性 MySQL 8.0 发布后,又在功能上给 memcached api 增加了两个新特性。 1. 演示 下面我们来演示下这两个新的特性,先把 memcached api 插件以及需要的示例表数据准备好。 1. MySQL 8.0 操作 memcached api, 可以一次性获取多个 Key。比如同样要获取 id 为(1,2,3,4,5,6)的记录,只需要 get 1 次即可。 总结 本篇介绍了 MySQL memcached api 使用场景以及在 MySQL 8.0 下新特性使用例子,希望对大家有帮助。
为了控制这个新的行为(从库上数据回放顺序),可新增选项"binlog_transaction_dependency_tracking”,它可以取以下三个值: COMMIT_ORDER:默认值,它使用 MySQL 关于持久性设置,除了将innodb_flush_log_at_trx_commit 设置为 2 ,其他均保留默认值(所以,sync_binlog=1 —— 这是 MySQL 8.0 中的新默认值,启用 这里有两个注意事项: 1、这个特性是向后兼容的,所以 5.7 的从库也能从中获益; 2、请注意 MySQL 8.0 依然是 beta 版本,我们不鼓励您在生产环境中使用测试版,尽管你非常需要这些新功能。 MySQL 复制的其他变化 除了最有趣的 writesets 新特性,MySQL 8.0 中关于 MySQL 复制的其他变化也是值得关注的。我们来看看其他的一些重要变化。 到目前为止,所有 8.0 版本都添加了这些特性。
3. 列出主从关系,可能要自己写个小脚本或者是利用 MySQL Utility 工具集或者是其他的工具集合。 那接下来来看看 MySQL 8.0.19 中 MySQL Shell 新特性:副本集以及管理。 二、副本集 副本集也就是极度简化了对 MySQL 主从的相关管理操作。 ytt-pc:4011 has the following errant GTIDs that do not exist in the replicaset: a19a4ac4-3a98-11ea-8f47 查看新状态,4012 为新的主机,4011 和 4010 为从机 MySQL ytt-pc:40100+ ssl JS > c1.status() { "replicaSet": { 三、总结 这篇介绍了 MySQL Shell 的新特性,管理 MySQL 主从复制,可以看到比传统的方式要简单的多。
之前的文章中分别介绍了MySQL 8.0在索引方面的新特性--隐藏索引 和 降序索引,详细内容可查看之前的文章内容; 在MySQL之前版本中,一直不支持函数索引,这也是被不少人诟病的一点;虽然可以通过generated 例如,以下索引表达式使用了括号: INDEX ((col1 + col2), (col3 – col4)) 下面是一个错误的写法,表达式没有位于括号之中: INDEX (col1 + col2, col3 但是这种方法带来了一个新的使用上的问题: CAST() 函数返回的字符串使用 utf8mb4_0900_ai_ci 排序规则(服务器默认设置)。 中,引入了不可见索引、降序索引、函数索引的新特性,索引方面功能也是趋于完善。 所以,大家还是尽快升级到8.0吧。
前言 MySQL 的主从同步应该是被各个 DBA 熟知的技术了,从 MySQL 3.23.15 开始一直迭代改进到 8.0 版本。 经过这么多年的改进,目前 8.0 提供的复制技术是最新的 WriteSet 机制,这个功能也被合并到了 5.7.21 版本,解决了 5.7 并行复制的一些问题。 复制的发展与瓶颈 基本原理 [复制原理] MySQL 复制的基本原理是比较简单和清晰的:Slave 节点中的 IO Thread 从 Master 的 binlog dump 新的内容到 Slave 本地的 WriteSet 复制,8.0 及 5.7.21 之后 WriteSet 实际上是事务冲突检测机制的称呼,通过对事务中受影响的行进行 Hash,然后和 History 中的 WriteSet result ,意味着这两个事务的 Hash 计算结果中会发现冲突,因此会从 T4 开始,开启一个新的事务组。
MySQL 8.0 支持隐藏索引(invisible index),也称为不可见索引。隐藏索引不会被优化器使用。 k_idx (k) INVISIBLE; Query OK, 0 rows affected (0.00 sec) Records: 0 Duplicates: 0 Warnings: 0 不可见索引特性可以用于测试删除某个索引对于查询性能的影响 慢查询日志中出现了新的查询语句。 系统变量 optimizer_switch 的 use_invisible_indexes 值控制了优化器构建执行计划时是否使用隐藏索引。 可能会有这样的情况: 我们可以创建一个新的隐形索引,但如果想要测试它,必须使它可见。这意味着所有对应用程序有即时影响的查询都将能够使用它。 参考链接 https://dev.mysql.com/doc/refman/8.0/en/invisible-indexes.html
前言 在最新的8.0版本中,MySQL在用户管理这一块,也是引入了很多新特性,包括操作系统认证、用户分类、新的权限、角色等等,接下来我们就看一看。 在MySQL之前的版本中,仅仅只支持数据库身份认证方式,即通过数据库的用户名和密码进行登录;不过,在最新的8.0版本中,MySQL也引入了操作系统身份认证。 mysql> create user test@'localhost' identified with auth_socket; Query OK, 0 rows affected (0.01 sec) (3) 权限管理 在MySQL 8.0中,引入了很多新的权限,进一步实现了权限的精细化管理,具体包括如下: (1)CREATE ROLE:创建角色的权限 (2)DROP ROLE:删除角色的权限 (3)APPLICATION_PASSWORD_ADMIN mysql> GRANT 'app_read', 'app_write' TO 'rw_user1'@'localhost'; Query OK, 0 rows affected (0.01 sec) (3)
默认字符集由latin1变为utf8mb4 在8.0版本之前,默认字符集为latin1,utf8指向的是utf8mb3,8.0版本默认字符集为utf8mb4,utf8默认指向的也是utf8mb4。 id=199),一直到8.0才被解决,8.0版本将会对AUTO_INCREMENT值进行持久化,MySQL重启后,该值将不会改变。 4. 参数修改持久化 MySQL 8.0版本支持在线修改全局参数并持久化,通过加上PERSIST关键字,可以将修改的参数持久化到新的配置文件(mysqld-auto.cnf)中,重启MySQL时,可以从该配置文件获取到最新的配置参数 8.0可以看到,c2字段降序。 JSON特性增强 MySQL 8 大幅改进了对 JSON 的支持,添加了基于路径查询参数从 JSON 字段中抽取数据的 JSON_EXTRACT() 函数,以及用于将数据分别组合到 JSON 数组和对象中的
一、MySQL 8.0中添加的功能 1、新的系统字典表 整合了存储有关数据库对象信息的事务数据字典,所有的元数据都用InnoDB引擎进行存储 2、支持DDL 原子操作 InnoDB表的DDL支持事务完整性 ,要么成功要么回滚,将DDL操作回滚日志写入到data dictionary 数据字典表 mysql.innodb_ddl_log 中用于回滚操作 3、安全和用户管理 新增caching_sha2_password innodb_deadlock_detect,用来禁用死锁检查,因为在高并发系统中,当大量线程等待同一个锁时,死锁检查会大大拖慢数据库 支持使用innodb_directories选项在服务器脱机时将表空间文件移动或恢复到新位置 ,通过加上PERSIST关键字,可以将调整持久化到新的配置文件中,再次重启db还可以应用到最新的参数。 二、MySQL 8.0中被废弃的特性 废弃validate_password 插件 废弃ALTER TABLESPACE和DROP TABLESPACE ENGINE子句 废弃JSON_MERGE()
上两篇文章分别介绍了MySQL8.0的相关的新特性《MySQL 8.0新特性:隐藏索引》和《MySQL 8.0新特性:隐藏字段》,本文继续介绍MySQL8.0的另一个相关的新特定性--降序索引;本文通过 5.7和8.0进行对比说明; MySQL从8.0开始终于支持真正的降序索引了,实际上,在以前的版本当中,语法上可以通过desc来指定索引为降序,但实际上创建的仍然是常规的升序索引。 再来看看MySQL 8.0的结果: 8.0 mysql>show create table idx_tab1\G *************************** 1. row ******** 可见,MySQL 8.0对于group by操作确实不再进行隐式排序。从5.7升级到8.0,依赖group by隐式排序的业务可要小心咯。 -8-0-labs-descending-indexes-in-mysql/ 相关阅读 MySQL 8.0新特性:隐藏字段 MySQL 8.0新特性:隐藏索引
前言 相信大家都知道,索引是有序的;不过,在MySQL之前版本中,只支持升序索引,不支持降序索引,这会带来一些问题;在最新的MySQL 8.0版本中,终于引入了降序索引,接下来我们就来看一看。 ------------+------+---------+------+------+----------+-------+ 1 row in set, 1 warning (0.00 sec) (3) from sbtest1 order by c,pad limit 10; SQL 2:select * from sbtest1 order by c,pad desc limit 10; SQL 3: -----+---------+------+------+----------+---------------------+ 1 row in set, 1 warning (0.00 sec) (3) ----------+---------+------+------+----------+-------+ 1 row in set, 1 warning (0.00 sec) 总结 MySQL 8.0
MySQL 8.0 推出了histogram,也叫柱状图或者直方图。先来解释下什么叫直方图。 3. 不支持列值完全唯一。 4. 需要手工的进行键值分布。 那我们来举个简单的例子说明直方图对查询的效果提升。 mysql> create table t3 like t2;Query OK, 0 rows affected (0.13 sec) mysql> insert into t3 select * from `t3`. `t3`.
上一篇介绍了MySQL8.0新特性之隐藏索引《MySQL 8.0新特性:隐藏索引》,这篇文章主要给大家介绍了关于MySQL 8.0新特性之隐藏字段; MySQL 8.0.23 版本增加了一个新的功能:隐藏字段 尽管如此,即使包含了原表中的隐藏字段,新表中的这些字段将会变成可见字段。 ******* 1. row *************************** Table: t3 Create Table: CREATE TABLE `t3` ( `i` int 准确来说,如果某个新的数据行和已有数据行的唯一键字段值相同,无论索引字段是否可见,都会使用以下处理方式: 如果指定了 IGNORE 修饰符,INSERT、LOAD DATA 以及 LOAD XML 都会忽略新的数据行 参考链接 https://dev.mysql.com/doc/refman/8.0/en/invisible-columns.html
InnoDB ReplicaSet在 MySQL 8.0.19 版本之后开始支持;本文将针对 InnoDB ReplicaSet这一新特性做一些测试,包括环境部署,在线主从切换、故障切换等; 一、 您可以使用ReplicaSet对象和AdminAPI操作,例如检查InnoDB ReplicaSet的状态,并在发生故障时手动故障转移到新的主数据库。 8.0.23实例 关于MySQL实例的部署这里不做太多介绍,这里我们部署三个测试实例,端口分别是8401、8402、8403 三、部署InnoDB ReplicaSet 仅支持要求运行MySQL 8.0 ONLINE" } }, "type": "ASYNC" } } 小结 1、InnoDB ReplicaSet 当前还不完善,可作为新特性在测试环境试用 3、InnoDB ReplicaSet 暂时还没有完善的投票选举机制,故障切换时也会存在脑裂风险。
前言 在MySQL之前版本中,一直不支持函数索引,这也是被不少人诟病的一点;虽然可以通过generated column实现类似功能,但始终是不太方便;不过,在最新的MySQL 8.0版本中,终于引入了函数索引 affected (0.11 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> alter table test add index idx_f_3( 外键不支持函数索引 (4)空间索引和全文索引不支持函数索引 (5)函数索引不能直接使用列前缀,可以通过SUBSTRING()和CAST()来替代 (6)在删除列之前,要先删除相关的函数索引 总结 在MySQL 8.0 中,引入了不可见索引、降序索引、函数索引的新特性,索引方面功能也是趋于完善。 所以,大家还是尽快升级到8.0吧。
在MySQL 5.7及之前版本,出现“too many connection”报错,超级用户root也无法登录上去,除了重启实例,没有其他更好的解决办法;不过在MySQL 8.0版本中,是对连接管理做了一些优化 ERROR 1040 (HY000): Too many connections 连接管理 在MySQL 8.0版本中,对连接管理这一块,是先后做了两个比较大的改变:一个是允许额外连接,另一个是专用的管理端口 额外连接 在MySQL 8.0版本中,在当前连接数达到最大连接数时,服务端允许1个额外连接,可以让具有CONNECTION_ADMIN权限的用户连接进来,下面简单测试一下。 (1)为了方便测试,先调整最大连接数 mysql> set global max_connections=3; Query OK, 0 rows affected (0.00 sec) (2)多开几个会话 因此,在MySQL 8.0.14版本中,又推出了一个非常重要的新特性——管理端口;它允许具有SERVICE_CONNECTION_ADMIN权限的用户,通过特定的IP和PORT连接上来,且没有连接数限制
前言 在MySQL 8.0中,引入了一个轻量级的备份锁,这个锁可以保证备份一致性,而且阻塞的操作相对比较少,是一个非常重要的新特性,接下来我们就来了解一下。 Oracle官方团队当然也意识到了这个问题,并在MySQL 8.0中提供了新的解决方案,让我们接着往下看。 0 rows affected (0.00 sec) session 2: mysql> select * from sbtest1 order by pad limit 1; session 3: 随着备份锁的引入,Oracle官方备份工具MEB 8.0和Percona开源备份工具XtraBackup 8.0,也是更新了对backup lock的支持,具体参考如下: MEB 8.0:https:/ ://www.percona.com/doc/percona-server/8.0/management/backup_locks.html 总结 备份锁,还是一个非常实用的新特性,可以解决非常多的日常生产问题
,已经完全可以媲美DB2、Oracle、SQL Server等大型商业数据库;今天就给大家带来 MySQL 8.0新特性 — 密码管理。 密码管理 在MySQL 8.0版本中,针对密码管理这一块,做出了非常大的改进与完善,支持以下功能: (1)密码认证插件 (2)密码过期策略 (3)密码复用策略 (4)密码修改验证策略 (5)双重密码支持 (6)密码强度策略 (7)随机密码生成 (8)登录失败追踪 密码认证插件 在MySQL 8.0版本中,支持以下3种密码认证插件: (1)mysql_native_password:8.0之前默认 (2 )caching_sha2_password:8.0默认 (3)sha256_password:可选 caching_sha2_password作为8.0默认的密码认证插件,其安全性强于mysql_native_password password_lock_time 3; --失败3次,锁定3天 总结 在MySQL 8.0版本中,密码管理这一块功能日趋完善,大大提高了MySQL数据库的安全性,尤其对政务行业、金融行业等监管要求高的企业来说