
MySQL 优化
文章平均质量分 88
Demonson
桃李春风一杯酒,江湖夜雨十年灯。
展开
-
详细分析MySQL事务日志(redo log和undo log)
innodb事务日志包括redo log和undo log。redo log是重做日志,提供前滚操作,undo log是回滚日志,提供回滚操作。undo log不是redo log的逆向过程,其实它们都算是用来恢复的日志:1.redo log通常是物理日志,记录的是数据页的物理修改,而不是某一行或某几行修改成怎样怎样,它用来恢复提交后的物理数据页(恢复数据页,且只能恢复到最后一次提...转载 2020-02-18 09:48:55 · 916 阅读 · 1 评论 -
TPCC-MySQL安装、使用及结果解读
tpcc-mysql用于MySQL基准测试,percona基于TPC-C(下面简写成TPCC)衍生出来的产品。下面对tpcc-mysql进行安装然后使用,最后结果解读,安装very easy,let 's do it。一、下载epel源[root yum.repos.d]$ rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/ep...转载 2019-02-15 13:43:35 · 472 阅读 · 0 评论 -
批量杀死MySQL连接的四种方法详解
这篇文章主要介绍了批量杀死MySQL连接的四种方法详解,本文分别给出了代码实例,需要的朋友可以参考下 方法一 通过information_schema.processlist表中的连接信息生成需要处理掉的MySQL连接的语句临时文件,然后执行临时文件中生成的指令。复制代码 代码如下:mysql> select concat('KILL ...转载 2018-07-04 10:52:01 · 2910 阅读 · 0 评论 -
MySQL 5.6 GTID 原理以及使用
转自:http://hamilton.duapp.com/detail?articleId=47 简介 GTID是MySQL 5.6的新特性,其全称是Global Transaction Identifier,可简化MySQL的主从切换以及Failover。GTID用于在binlog中唯一标识一个事务。当事务提交时,MySQL Server在写binlog的时候,会先写一个特殊的Bin...转载 2018-07-04 10:06:57 · 1694 阅读 · 0 评论 -
MySQL: Starting MySQL….. ERROR! The server quit without updating PID file
今天启动MySQL 遇见了这个问题,网上搜索,结果各种改文件,删除文件纯属坑爹;在上边的网站上发现了问题的解决方案~老外总结的真不错!拿过来自己学习一下This step-by-step guide is mainly for FreeBSD, however the idea is the same for Linux. Every once a while, when I update my ...转载 2018-06-28 09:03:03 · 1105 阅读 · 0 评论 -
Mysql 中的事件//定时任务
什么是事件一组SQL集,用来执行定时任务,跟触发器很像,都是被动执行的,事件是因为时间到了触发执行,而触发器是因为某件事件(增删改)触发执行;开启事件查看是否开启:show variables like 'event_scheduler';如果显示OFF,则输入以下语句开启:set global event_scheduler = on;提醒:虽然这里用set global event_sched...原创 2018-06-28 09:01:39 · 453 阅读 · 0 评论 -
mysql多进程复制
并发复制(Parallel Replication) Enhanced Multi-threaded Slaves首先梳理下传统MySQL/MariaDB主备复制基本原理: 主从复制通过三个线程来完成,在master节点运行的binlog dump的线程,I/O线程和SQL线程运行在slave 节点 master节点的Binlog du...转载 2018-07-10 10:20:42 · 824 阅读 · 0 评论 -
超级有用的15个mysqlbinlog命令
在MySQL或MariaDB中,任意时间对数据库所做的修改,都会被记录到日志文件中。例如,当你添加了一个新的表,或者更新了一条数据,这些事件都会被存储到二进制日志文件中。二进制日志文件在MySQL主从复合中是非常有用的,主服务器会发送其数据到远程服务器中。当你需要恢复MySQL时,也会需要使用到二进制日志文件。mysqlbinlog 命令,以用户可视的方式展示出二进制日志中的内容。同时,也可以将其...原创 2018-06-20 10:53:34 · 260 阅读 · 0 评论 -
mysqldump的锁表的问题
今天凌晨,公司的一台MySQL生产库备份时间从2:30一直备份到8:30,正常情况下这个备份应该只会备份20分钟,3:00之前就会备份完毕,但是这次备份时间太长了,也影响了公司业务的使用。先写一下公司的备份语句mysqldump -uroot -p123456 --opt --master-data=2 -R dbname | gzip >/data/dbname.sql.gz分析一下上面这...原创 2018-06-19 18:05:55 · 3929 阅读 · 0 评论 -
Mysql 5.7从节点配置多线程主从复制的方法详解
这篇文章主要介绍了Mysql 5.7从节点配置多线程主从复制的相关资料,文中介绍的非常详细,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。 前言Mysql 采用多线程进行复制是从 Mysql 5.6 开始支持的内容,但是 5.6 版本下有缺陷,虽然支持多线程,但是每个数据库只能一个线程,也就是说如果我们只有一个数据库,则主从复制时也只...转载 2018-06-29 17:09:53 · 745 阅读 · 0 评论 -
MySQL Replication 优化和技巧、常见故障解决方法
MySQL 主从同步错误(error)解决(转)sql_slave_skip_counter参数 附:一些错误信息的处理,主从服务器上的命令,及状态信息。在从服务器上使用show slave status\GSlave_IO_Running,为No,则说明IO_THREAD没有启动,请执行start slave io_threadSlave_SQL_Running为No则复制出错,查看Last_e...转载 2018-06-16 13:19:08 · 682 阅读 · 0 评论 -
Mysql 5.7 主从复制的多线程复制配置方式以及读写分离中间件 MaxScale
mysql主从复制配置配置思路1. 修改master和slave的配置文件,使用二进制日志,指定serverid目的是让各自都有了自己的唯一标示,并以二进制文件格式进行交流2. master中创建授权用户,查看二进制日志文件名,及最新位置让slave知道用哪个用户信息访问master,知道读取哪个日志文件,及从哪儿开始读3. slave中使用被授权用户信息及日志文件信息,进行指向master这时已...转载 2018-06-23 12:23:17 · 446 阅读 · 0 评论 -
MySQL版本升级之5.6到5.7
两种升级方式In-Place Upgrade: Involves shutting down the old MySQL version, replacing the old MySQL binaries or packages with the new ones, restarting MySQL on the existing data directory, and running mysql...转载 2018-06-22 15:25:27 · 1215 阅读 · 0 评论 -
mysql : range分区、range和key复合分区、分区裁剪
--##test01大小为52G,保存大概两天的数据--##每天数据大约25G左右,每天需创建一张备份表,插入一天的数据,再要在这张表中删除一天的数据--##现在采取分区裁剪的办法,避免多余的备份与删除--##现在分区分为两种:--##1.简单range分区(一层分区,每个区大约25G)--##2.range和key复合分区(两层分区,理想状态下均匀分布每个分区大概3G,但从实际历史表分区情况看,...原创 2018-06-22 14:05:49 · 2080 阅读 · 0 评论 -
批量 kill mysql 中运行时间长的sql
以下内容来自mysql手册:13.5.5.3. KILL语法KILL [CONNECTION | QUERY] thread_id每个与mysqld的连接都在一个独立的线程里运行,您可以使用SHOW PROCESSLIST语句查看哪些线程正在运行,并使用KILL thread_id语句终止一个线程。KILL允许自选的CONNECTION或QUERY修改符:· KILL CONNE...原创 2018-06-11 22:04:38 · 497 阅读 · 0 评论 -
MySQL MHA 搭建&测试(环境:CentOS7 + MySQL5.7.23)
MySQL MHA架构介绍:MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的...转载 2019-02-14 17:32:32 · 612 阅读 · 0 评论 -
【工具】TPCC-MySQL 测试结果详解
TPCC-MySQL输出结果详解前面的一篇文章介绍了测试工具tpcc-mysql的安装与使用,奈何网上基本没有对于tpcc-mysql 结果的分析,本文介绍如何对测试结果进行分析:一 测试例子[root@rac1 tpcc-mysql]# tpcc_start -hlocalhost -d tpcc -u root -p '' -w 5 -c 5 -r 120 -l ...转载 2019-02-15 13:38:48 · 1196 阅读 · 0 评论 -
MySQL调优之innodb_buffer_pool_size大小设置
MySQL调优之innodb_buffer_pool_size大小设置相关查看命令sql> show global variables like 'innodb_buffer_pool_size';sql> show global status like 'Innodb_buffer_pool_pages_data';sql> show global status lik...转载 2019-05-09 11:26:52 · 683 阅读 · 0 评论 -
使用pt-table-checksum&pt-table-sync检查和修复主从数据一致性
一、背景公司数据中心从托管机房迁移到阿里云,需要对MySQL迁移(Replication)后的数据一致性进行校验,但又不能对生产环境使用造成影响,pt-table-checksum成为了绝佳也是唯一的检查工具。所以就利用pt-table-checksum工作来检查主从的一致性,以及通过pt-table-sync如何修复这些不一致的数据。pt-table-checksum是Percona-T...转载 2019-02-14 14:13:28 · 1052 阅读 · 0 评论 -
Percona Toolkit工具集介绍
部署mysql工具是一个非常重要的部分,所以工具的可靠性和很好的设计非常重要。percona toolkit是一个有30多个mysql工具的工具箱。兼容mysql,percona server,mariadb;它可以帮助DBA自动化的管理数据库和系统任务。因为他有很多工具,所以从哪里开始是一个难题,因为这个原因,所以我们下面介绍一些可能会常用到的percona toolkit工具集。安装per...转载 2019-02-14 14:01:41 · 554 阅读 · 0 评论 -
使用pt-query-digest分析MySQL日志
一、工具介绍pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog、General log、slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdump抓取的MySQL协议数据来进行分析。可以把分析结果输出到文件中,分析过程是先对查询语句的条件进行参数化,然后对参数化以后的查询进行分组统计,统计出各查询的执行时间、次数、占比等,可以借助分析...转载 2019-02-14 14:00:32 · 984 阅读 · 0 评论 -
使用pt-duplicate-key-checker检查MySQL重复索引
pt-duplicate-key-checker这款工具也是percona-toolkit中一款非常适用的工具,它可以帮助你检测表中重复的索引或者主键。我们知道索引会更查询带来好处,但是过量的索引反而可能会使数据库的性能降低,这款工具可以帮助我们找到重复的索引并且还会给你删除重复索引的建议语句,非常好用。首先看我的这张表的索引结构mysql> show index from test...转载 2019-02-14 13:59:05 · 326 阅读 · 0 评论 -
使用pt-kill为MySQL保驾护航
运行平稳的数据库,如果遇到CPU狂飙,那很大可能就是慢SQL出现了。DBA首先要保证的是,数据库别跑挂了,所以我们要把那些运行慢的SQL杀死并记录到文件里,以便后面的排查。对于OLTP型业务,主库SELECT类SQL执行不允许超过1s才是合理的;那么对于超过1s的SQL或者对微延迟可以接受查询,理应在从库或者多源库上执行。那么Percona Tools工具包中也提供了这么一个可以帮你解决这类问...转载 2019-02-14 13:56:47 · 306 阅读 · 0 评论 -
mysql管理工具percona-toolkit-3简单使用介绍
安装percona-toolkit-3# yum localinstall percona-toolkit-3.0.3-1.el6.x86_64.rpm perl-TermReadKey.x86_64 0:2.30-13.el6 -y 1.pt-summary #显示和系统相关的基本信息:[root@master ~]# pt-summary # Percona Tool...原创 2019-02-14 13:43:36 · 732 阅读 · 0 评论 -
阿里云MySQL优化主从同步,降低数据延迟
1. 背景 为了提高系统的可用性和数据保护,MySQL通常采用master-slave的部署结构,简单高效,master和slave之间使用binlog来复制数据。binlog支持statement和row格式,为了保证数据的一致性,通常采用row格式的event。master-slave的结构图如下: 当主库或者主库所在的主机,机房出现异常情况的时候, 进行...转载 2019-02-14 13:21:19 · 537 阅读 · 0 评论 -
使用MySQL Proxy解决MySQL主从同步延迟
MySQL的主从同步机制非常方便的解决了高并发读的应用需求,给Web方面开发带来了极大的便利。但这种方式有个比较大的缺陷在于MySQL的同 步机制是依赖Slave主动向Master发请求来获取数据的,而且由于服务器负载、网络拥堵等方面的原因,Master与Slave 之间的数据同步延迟是完全没有保证的。短在1秒内,长则几秒、几十秒甚至更长都有可能。由于数据延迟问题的存在,当应用程序在Master...转载 2019-02-14 13:20:34 · 302 阅读 · 0 评论 -
MySQL利器之orzdba的安装,使用
orzdba的安装--orztop工具也可以看看(实时查看当前processlist和full processlist)只能在本地服务器上运行,因为使用tcprstat收集信息 源码地址http://code.taobao.org/svn/orzdba/trunk/ # chmod +x orzdba tcprstat工具安装与使用 使用方法:...转载 2019-02-16 23:44:39 · 3689 阅读 · 0 评论 -
使用mysqladmin ext了解MySQL运行状态
mysqladmin是MySQL一个重要的客户端,最常见的是使用它来关闭数据库,除此,该命令还可以了解MySQL运行状态、进程信息、进程杀死等。本文介绍一下如何使用mysqladmin extended-status(因为没有"歧义",所以可以使用ext代替)了解MySQL的运行状态。目录 [hide]1. 使用-r/-i参数 2. 配合grep使用 3. 配合简单的awk使用 4....转载 2019-02-16 22:32:18 · 301 阅读 · 0 评论 -
MySQL性能优化
一、参数优化上图为mysql innoodb引擎整体架构innodb_buffer_pool_size: 越大命中率越高,一般系统的75%innodb_buffer_pool_instances:大内存时常用,提高并发--将innodb_buffer_pool划分为不同的instance--每个instance独立的LRU、FLUSH、FREE--独立的mutex控制...原创 2019-02-15 15:24:02 · 1006 阅读 · 0 评论 -
MySQL压力测试工具
一、工具fio:测试Linux磁盘IO性能;tpcc-mysql:只针对mysql的测试工具,很权威;dbt2:比较全面会统计出系统的资源情况,可以对postgresql,mysql等数据库压测;sysbench:不仅压测数据库,还可以压测系统的资源,传统只针对单个表的压测,tpcc 只是固定模型,并不符合实业务逻辑,所以可以使用sysbenc...原创 2019-02-15 14:28:29 · 2977 阅读 · 0 评论 -
mysql删除大表更快的drop table办法
利用硬链接和truncate降低drop table对线上环境的影响在DROP TABLE的时候,所有进程不管是DDL还是DML都被HANG起;直到DROP结束才继续执行;这是因为INNODB会维护一个全局独占锁(在table cache上面),直到DROP TABLE完成才释放。在我们常用的ext3,ext4,ntfs文件系统,要删除一个大文件(几十G,甚至几百G)还是需要点时间的。下面我们介绍...转载 2018-05-24 11:48:52 · 3982 阅读 · 1 评论 -
mysqldumpslow使用总结
缘起: 实际生产环境中MySQL出现查询慢的问题,为了分析慢查询,开启慢查询日志,并对日志进行分析。 为了避免在生成环境中产生误操作,把记录的慢查询日志copy回来,到自己的电脑中进行分析。 分析结果:[root@dras-test local]#mysqldumpslow -a -s t -t 2 /opt/slow_query_log.txt Reading mysql slow quer...原创 2018-05-16 11:47:13 · 1589 阅读 · 0 评论 -
MySQL 慢查询日志(Slow Query Log) 格式抽取
同大多数关系型数据库一样,日志文件是MySQL数据库的重要组成部分。MySQL有几种不同的日志文件,通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等。这些日志可以帮助我们定位mysqld内部发生的事件,数据库性能故障,记录数据的变更历史,用户恢复数据库等等。本文主要描述通用查询日志。 1、MySQL日志文件系统的组成 a、错误日志:记录启动、运行或停止mysqld时出现的问题。 ...转载 2018-05-16 10:50:20 · 2600 阅读 · 0 评论 -
MySQL 聚集索引/非聚集索引简述
MySQL索引中可以分为聚集索引与非聚集索引两类,在网络上也见过聚簇的说法,这里先简单介绍两种索引的含义与适用场景。懒得画图,全是字。聚集索引索引的键值逻辑顺序决定了表数据行的物理存储顺序,也就是在数据库上连接的记录在磁盘上的物理存储地址也是相邻的,注意这一点特性,我们可以分析出它的适用情况。由于聚集索引规定了数据项,也可以说是记录在表中的物理存储顺序,物理顺序唯一,自然每张表中的聚集索引也是唯一...转载 2018-04-26 15:02:43 · 256 阅读 · 0 评论 -
MySQL innoDB重做日志文件
前言:之前一直弄不清楚mysql里面bin log和innodb log文件的区别,在脑子里面一直有个疑问binlog日志文件已经可以用来进行数据库的日志备份恢复了,怎么又多了一个redo log文件了。相信也有很多人有这个疑惑,现在把整个过程文档整理出来,希望对大家有所帮忙。如果对Oracle很了解,那么在整个学习innoDB log的时候,可以把联机重做日志的那套理论套在学习innoDB lo...转载 2018-04-26 14:08:21 · 1664 阅读 · 0 评论 -
MySQL高速缓存启动方法及参数详解(query_cache_size)
这篇文章主要介绍了MySQL高速缓存启动方法及参数详解(query_cache_size),需要的朋友可以参考下MySQL query cache从4.1版本开始提供了,不过值今天本人才对其进行研究。默认配置下,MySQL的该功能是没有启动的,可能你通过show variables like ‘%query_cache%';会发现其变量have_query_cache的值是yes,MYSQL初学者...转载 2018-05-17 11:26:34 · 7222 阅读 · 1 评论 -
mysql优化之thread_cache_size
1、mysql服务器的线程数查看方法:show global status like 'Thread%';Threads_created:创建过的线程数,如果发现Threads_created值过大的话,表明MySQL服务器一直在创建线程,这也是比较耗资源,可以适当增加配置文件中thread_cache_size值2、优化参数thread_cache_sizethread_cache_size:...转载 2018-05-17 11:03:34 · 1642 阅读 · 0 评论 -
mysql 优化技巧心得一(key_buffer_size设置).
1: 对于mysql来说,登录的时候,加一个参数[sql] view plain copy #mysql -u root -p --prompt="\\u@\\d \\r:\\m:\\s>" --prompt 是加一些登录后的参数,上面参数 u 是加入登录的用户名, d 是登录后选择后(use dbname)的数据库表, r m s 是时间2: key_buffer_size 对MyISA...转载 2018-05-17 10:54:29 · 2250 阅读 · 0 评论 -
MYSQL实践心得:table_open_cache的设置
MYSQL默认的table_open_cache为64,这个数值是偏小的,如果max_connections较大,则容易引起性能问题。 表现:数据库查询效率慢,show processlist 发现比较多的查询正在opening table。 进一步确认,执行以下语句:mysql> show global status like 'open%tables%';+------...转载 2018-05-17 10:42:28 · 4502 阅读 · 0 评论 -
InnoDB log file 设置多大合适
简介:数据库的东西,往往一个参数就牵涉N多知识点。所以简单的说一下。大家都知道innodb是支持事务的存储引擎。事务的四个特性ACID即原子性(atomicity),一致性(consistency),隔离性(isolation),持久性(durability)。其中原子性,一致性,持久性通过redo log 和 undo来实现。redo log称为重做日志,用来保证...转载 2018-05-17 10:03:14 · 446 阅读 · 0 评论