注册 登录
  • 欢迎访问"运维那点事",推荐使用Google浏览器访问,可以扫码关注本站的"微信公众号"。
  • 如果您觉得本站对你有帮助,那么可以扫码捐助以帮助本站更好地发展。

标签:MySQL 5.7

MySQL InnoDB

MySQL 5.7 InnoDB COUNT(*)优化

在MySQL 5.7版本中,InnoDB实现了新的handler的records接口函数,当你需要表上的精确记录个数时,会直接调用该函数进行计算。 使用 实际上records接口函数是在优化阶段调用的,在满足一定条件时,直接去计算行级计数。其explain出来的结果相比老版本也有所不同,这里我们使用sysbench的sbtest表来进行测试,共200万行数据……继续阅读 »

彭东稳 4个月前 (06-27) 927浏览 0评论 1个赞

MySQL

MySQL内部临时表的使用

一、内部临时表使用 在某些情况下,服务器在处理语句时创建内部临时表,而用户无法直接控制临时表何时发生,完全有MySQL内部自行决定。 MySQL在以下几种情况会创建临时表: 1、UNION查询(MySQL 5.7起,执行UNION ALL不再产生临时表,除非需要额外排序。); 2、用到TEMPTABLE算法或者是UNION查询中的视图; 3、ORDER BY……继续阅读 »

彭东稳 6个月前 (04-26) 1075浏览 0评论 2个赞

MySQL

MySQL 5.7默认SQL模式带来的问题总结

在使用MySQL 5.7版本时,已经碰到了两起因为SQL_MODE的改变而导致的问题了,究其原因都是因为MySQL 5.7控制的更加严格了,所以在MySQL 5.6或MySQL 5.5有些SQL语句就无法在MySQL 5.7执行了(会给开发带来一个很诡异的问题,就是代码一样、环境一样、SQL一样、测试跟正式怎么就报错呢?)。 说一下我碰到的两起事件: 1、某……继续阅读 »

彭东稳 7个月前 (03-30) 2270浏览 3评论 2个赞

MySQL

MySQL 5.7新特性:支持在线收缩undo log表空间

背景 InnoDB存储引擎中,undo在完成事务回滚和MVCC之后,就可以purge掉了,但undo在事务执行过程中,进行的空间分配如何回收,就变成了一个问题。 我们亲历用户的小实例,因为一个大事务,导致ibdata file到800G大小。 在MySQL 5.5版本时,InnoDB undo是放在系统表空间即ibdata file文件中,这样如果有比较大的……继续阅读 »

彭东稳 7个月前 (03-23) 1201浏览 0评论 1个赞

MySQL

MySQL 5.7新特性:在线收缩undo表空间

一. MySQL 5.5时代的undo log 在MySQL5.5以及之前,大家会发现随着数据库上线时间越来越长,ibdata1文件(即InnoDB的共享表空间,或者系统表空间)会越来越大,这会造成2个比较明显的问题: 1)磁盘剩余空间越来越小,到后期往往要加磁盘; 2)物理备份时间越来越长,备份文件也越来越大。 这是怎么回事呢? 原因除了数据量自然增长之外……继续阅读 »

彭东稳 8个月前 (02-21) 1250浏览 0评论 1个赞

MySQL

MySQL 5.7新特性:多线程备份工具mysqlpump使用

mysqlpump备份工具介绍 MySQL在备份方面包含了自身的mysqldump工具,但其只支持单线程工作,这就使得它无法迅速的备份数据。所以就有人写了mydumper工具,支持多线程,并且是行级粒度,支持正则匹配多数据库。MySQL官方当然也意识到了这个问题,所以从MySQL5.7开始就推出了mysqlpump工具,mysqlpump相对于之前的逻辑备份……继续阅读 »

彭东稳 10个月前 (12-13) 2755浏览 0评论 1个赞

MySQL

MySQL 5.7新特性:客户端使用加密连接

有这么一种需求,就是要求处理敏感字段,比如取出的密码或资金数据用***来表示,那么DBA就无法看到这部分的私人数据内容。这本身是一个很不错的安全处理方式,但若DBA在本地装一个类似tcpdump的工具,则依然能够通过获取得到的包得到想要的数据。因此,除了在程序端进行展示的安全处理,还需在MySQL服务器端开启安全的加密通信功能,这时就是SSL发挥功能的时候了……继续阅读 »

彭东稳 11个月前 (11-24) 1698浏览 0评论 0个赞

MySQL

MySQL 5.7新特性:多源复制实践

前言 MySQL 5.7的发布,在复制方面有了很大的改进,比如开始支持多源复制(multi-source)了。以及真正的支持多线程复制了。需要说明一点的是,多源复制可以使用基于二进制日志的复制或者基于事务的复制。下面开始配置基于二进制日志的多源复制。 什么是多源复制? 首先,我们需要清楚几种常见的复制模式: 1)一主一从 2)一主多从 3)级联复制 4)Mu……继续阅读 »

彭东稳 11个月前 (11-22) 1829浏览 0评论 5个赞

MySQL

MySQL 5.7新特性:在线开启和关闭基于GTID的复制

一、前言 MySQL在5.6版本之前复制一直是基于二进制日志的复制,到了MySQL5.6时开始支持基于事务(GTIDs)的复制,并且开始支持多线程复制;但MySQL5.6版本的多线程只能基于多库。这就牵扯到了一个应用场景,就是从基于日志的复制在线变更到基于事务的复制,在MySQL5.6版本时这一动作只能重启主服务器才可以做到。但是到了MySQL 5.7版本时……继续阅读 »

彭东稳 11个月前 (11-21) 2097浏览 0评论 3个赞