MySQL(Innodb)索引的原理
图画的很漂亮,说的也比较清除,mark一下
【LINUX】线上服务CPU100%问题快速定位实战
功能问题,通过日志,单步调试相对比较好定位。 性能问题,例如线上服务器CPU100%,如何找到相关服务,如何定位问题代码,更考验技术人的功底。 58到家架构部,运维部,58速运技术部联合进行了一次线上服务CPU问题排查实战演练,同学们反馈有收获,特将实战演练的试题和答案公布出来,希望对大...
【Mysql】读书笔记之--innodb_buffer_pool内存的管理
读书内容:技术内幕第二章1.内存与磁盘基本流程图如下:在数据库中进行读取页的操作时,首先将磁盘读取到的页放入缓冲池中,这个过程称之为FIX页到缓冲池,下次再读取到相同的页时,先判断是否在缓冲池中,如果在则直接从缓冲池读取,如果不在则循环FIX的过程在数据库中进行修改页的操作时,首...
【参数】Innodb_io_capacity 对于IO稳定性的一些研究
Innodb_io_capacity 对于IO稳定性的一些研究 背景:最近在做一台线上服务器IO负载情况的时候发现了以下现象:24小时的IO_UTIL 的曲线看似风平浪静,毛刺较少但当图片放大到半小时级别的时候发现IO_UTIL即磁盘使用率出现了规律性的波动,见下图:...
【Mysql】master_info 与 relay_info对数据库的影响
在MySQL 5.6.2之前,slave记录的master信息以及slave应用binlog的信息存放在文件中,即master.info与relay-log.info。在5.6.2版本之后,允许记录到table中,参数设置如下:master-info-repository = TABLE ---FILE表示以文件方式relay-log-info-repository = TABLE ---FILE表示以...
【Mysql】安装tokudb引擎
平台支持: TokuDB 只能在 64-bit Linux 下使用.最小内存要求: TokuDB 需要至少1GB 的物理内存,当然这里建议最好是 2GB 安装tokuDB tokuDB内存分配需要jemalloc支持(一般安装percona mysql以后自己就有,如果没有则需要额外安装) &nbs...
【Mysql】使用jemalloc(或tcmalloc)优化MYSQL(安装步骤)
默认的内存分配就是c的malloc 现在也出现许多优化的内存分配算法:jemalloc and tcmalloc从MySQL 5.5后支持声明内存储方法。安装jemallocwget http://www.canonware.com/download/jemalloc/jemalloc-3.4.0.tar.bz2tar xjf jemalloc-3.4.0.tar.bz2cd jemalloc-3.4.0./configure --prefix=/usr/lo...
【Mysql】metadata lock锁
原文地址:http://blog.itpub.net/26250550/viewspace-1071987/metadata lock的超时时间是lock_wait_timeout,并不是innodb_lock_wait_timeoutMySQL 5.5.3版本中引入了Metadata lock: DDL语句打破了事务的隔离级别 在5.5.3版本之前,MySQL事务对于表结构元数据(Metadata)的锁定是语句(statemen...
【Mysql】index extensions介绍
1、什么是index extensionsindex extensions是MySQL 5.6.9之后的新特性,关于这个特性,手册中的解释是这样的:InnoDB automatically extends each secondary index by appending the primary key columns to it(出处详见手册 8.2.1.7 Use of Index Extensions,原文链接:https://dev.mysql.com/doc/refm...
【Mysql】针对跑mysql的linux机器的优化经验
因为很多MySQL的生产环境都在Linux下,我决定指出一些Linux下跑MySQL的很重要的优化点。这些是大家都知道的,也没什么新东西,但我想在这一个blog里收集整理一下Linux相关的配置优化经验。文件系统ext4(or xfs) mount时使用notime选项文件系统调度策略: 使用deadline or noop# ...
MySQL追加注释或者大量修改注释
MySQL 5.6.14之前一个项目比较仓促,开发给的建表语句没有注释.现在要补全注释信息.但是MySQL后期追加注释比较麻烦需要使用modify语法。只要不小心写错一点,就可能导致表结构的变更,而不是注释的变更.实验表如下:create table t( c1 int prim...
【Mysql】show engine innodb status详解
很多人让我来阐述一下 SHOW INNODB STATUS 的输出信息, 了解 SHOW INNODB STATUS 都输出了些什么信息,并且我们能从这些信息中获取什么资讯,得以提高 MySQL 性能。首先,让我们来了解一下 SHOW INNODB STATUS 输出的基础,它打印了很多关于 InnoDB 内部性能相关的计数器、统计、事务处理信息等。在 MySQL ...
【Mysql】MySQL查询计划key_len全知道
1111
【Mysql】快速定位不合理的索引——MySQL索引调优(一)
原文地址:http://mp.weixin.qq.com/s?__biz=MjM5MjIxNDA4NA==&mid=401131835&idx=1&sn=37c5fd9d3d8670fb379a1e0565e50eeb&scene=0#wechat_redirect创建索引是门技术活,开发DBA的工作之一就是配合应用创建最优的索引。然大部分公司并没有开发DBA一职,大多数的索引创建需要由程序开发人员自己完成,这导致的一个后果是...
MySQL federated引擎试验(DBLINK的作用)
原文地址:http://yueliangdao0608.blog.51cto.com/397025/81606/如果写的不对的地方,欢迎各位提意见。可以在数据非常大的时候起到分发表或者库到不同的服务器。减少每个服务器的IO。首先看看有没有federated 引擎。mysql> show engines;+------------+----------+------------------------------------------------...
mysqldumpslow慢查询
一直以来积累了很多对MySQL优化的心得和经验,计划通过写日志的方式一步一步写出来分享给大家。MySQL优化的第一步应该做的就是排查问题,找出瓶颈,而通常情况下的瓶颈和问题都需要通过观察MySQL的运行情况来进行分析,《查看MySQL运行状况》这篇文章罗列了一些常用的查看MySQL运行信息的方式。而对于大多数的程...
【Mysql】MySQL查询优化-explain
一、MySQL 查询优化器是如何工作的 MySQL 查询优化器有几个目标,但是其中最主要的目标是尽可能地使用索引,并且使用最严格的索引来消除尽可能多的数据行。最终目标是提交 SELECT 语句查找数据行,而不是排除数据行。优化器试图排除数据行的原因在于它排除数据行的速度越快,那么...
【Mysql】mysql5.6 Online DDL
一 .Fast index CreationMySQL 5.5和更高版本并且MySQL 5.1 innodb plugin支持Fast index Creation,对于之前的版本对于索引的添加或删除这类DDL操作,MySQL数据库的操作过程为如下:(1)首先创建新的临时表,表结构通过命令ALTAR TABLE新定义的结构(2)然后把原表中数据导入到临时表(3)删除原表...
【Mysql】记一次锁问题
接收到短信告警说mysql库的链接线程400了 告警了~mysql> show status like '%connect%';+--------------------------+-----------+| Variable_name | Value |+--------------------------+-----------+| Aborted_connects | 4582...
mysql锁详解
为了给高并发情况下的mysql进行更好的优化,有必要了解一下mysql查询更新时的锁表机制。一、概述MySQL有三种锁的级别:页级、表级、行级。MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-levellocking),但也支持表级锁;InnoDB存储引擎既支...