MySQL使用profile分析SQL语句执行过程
分析SQL执行带来的开销是优化SQL的重要手段。在MySQL数据库中,可以通过配置profiling参数来启用SQL剖析。该参数可以在全局和session级别来设置。对于全局级别则作用于整个MySQL实例,而session级别紧影响当前session。该参数开启后,后续执行的SQL语句都将记录其资源开销,诸如IO,上下文切换,CPU,Memory等等。根据这……
MySQL 5.7:自动回收UNDO表空间
undo log segment(undo segment) Undo Logs 合集。undo segment 可以被重复使用,但是一次只能由一个事务占用。 rollback segment 也就是 Undo Logs 的物理存储区域。 undo tablespace rollback segment 被从系统表空间里分离出来后的实际磁盘文件表……
MySQL参数innodb_fast_shutdown&innodb_force_recovery介绍
innodb_fast_shutdown innodb_fast_shutdown告诉 InnoDB 在它关闭的时候该做什么工作。 有三个值可以选择(默认值为1): 0:表示在 InnoDB 关闭的时候,需要 purge all,merge insert buffer,flush dirty pages。这是最慢的一种关闭方式,但是restart的时候也是……
MongoDB最佳实践-持续更新版
本文包括以下几个方面: – 安全措施 – 部署架构 – 系统优化 – 索引设计 – 备份监控 – 模式设计 – 程序配置 一、安全措施 1.1 为MongoDB集群启用认证鉴权 MongoDB服务器在默认安装下不启用鉴权。这意味着每个人都可以直接连接到mongod实例并执行任……
MongoDB复制集成员状态转换
MongoDB一共有10种状态,官方将其分为3大类,核心状态(Core States)为三种成员类型对应的属性(PRIMARY/SECONDARY/ARBITER),还有7种属性,被分为其他状态(Other States)和错误状态(Error States)两类。 核心状态(Core States) RPIMARY SECONDARY ARBITER 其他……
MongoDB复制集同步慢问题分析
案例一 一、问题背景 最近生产环境出现多次Primary写入QPS太高,导致Seconary的同步无法跟上的问题(Secondary上的最新oplog时间戳比Primary上最旧oplog时间戳小),使得Secondary变成RECOVERING状态,这时需要人工介入处理,向Secondary发送resync命令,让Secondary重新全量同步一次。 二、……
MongoDB 3.4复制集全量同步改进
一、MongoDB副本集数据同步方式 intial sync,可以理解为全量同步。 replication,追同步源的oplog,可以理解为增量同步。 下面会详细介绍MongoDB数据同步的实现原理。 initial sync Secondary节点当出现如下状况时,需要先进行全量同步。 oplog为空。 local.replset.minvalid集……
MySQL Group Commit
一、背景 在关系型数据库中,为了满足 ACID 中的D(持久性)属性,也就是说事务提交并且成功返回给客户端之后,必须保证该事务的所有修改都持久化了,无论是在数据库程序崩溃的情况下或者是数据库所在的服务器发生宕机或者断电的情况下,都必须保证数据不能丢失。这就要求数据库在事务提交过程中调用 fsync 或 fdatasync 系统调用将数据持久化到磁盘,现代数据……
MySQL主从复制线程状态转变
一、主库线程状态(State)值 以下列表显示了主从复制中主服务器的Binlog Dump线程的State列中可能看到的最常见状态(SHOW PROCESSLIST)。如果Binlog Dump线程在主服务器上看不到,这意味着复制没有运行,也就是说,目前没有连接任何Slave主机。 Sending binlog event to slave 二进制日志由各种……
MySQL数据归档的几种操作方法介绍
使用MySQL的过程,经常会遇到一个问题,比如说某张”log”表,用于保存某种记录,随着时间的不断的累积数据,但是只有最新的一段时间的数据是有用的;这个时候会遇到性能和容量的瓶颈,需要将表中的历史数据进行归档。下面来说说几种常见的数据归档方式。 一、使用分区,再利用分区交换技术能够很好地把指定分区中的数据移动到指定表中,这个需要在项目……