pt-online-schema-change和MySQL原生online DDL对比
测试环境:MySQL5.7pt-online-schema-change 3.2.0第一次加索引,使用MySQL原生的online DDL。做一个超级慢的update,模拟长事务。mysql> update test set user_id='aa' where user_id like '
MySQL索引提示
SQL提示,是优化数据库的一个重要手段,简单来说,就是在SQL语句中加入一些人为的提示来达到优化操作的目的。MySQL数据库支持索引提示(INDEX HINT)显式的告诉优化器使用了哪个索引。有以下几种情况可能用到索引提示:1、MySQL数据库的优化器错误的选择了某个索引,导致SQL运行很慢。这个在情况比较少见。优化器在绝大部分情况下工作的非常有效和正确。
MySQL SHOW INDEX 语法解析
本文对show index from tablename;语法进行分析。如:show index from `order`1、Table 表名2、Non_unique 如果索引不能包括重复值则为0,如果可以则为1。也就是平时所说的唯一索引。3、Key_name 索引名称,如果名字相同则表明是同一个索引,而并不是重复,比如上图中的第二、三条数据,索引名
MySQL之select into outfile用法
1、select into outfile可以导出数据到指定目录下的文件中语法:SELECT ... INTO OUTFILE 'file_name' [CHARACTER SET charset_name] [export_options] export_options: [{FIELDS | 
MySQL防止无where条件update操作
生产环境中,DBA的粗心造成的数据错误最危险,为了防止无where条件的update语句出现错误,可使用如下方法。1、加-U登录数据库点击(此处)折叠或打开[root@master ~]# mysql -uroot -pmysql -Umysql: [Warning] Using a password on the command line interface ...
MySQL杀会话常用方法
这篇文章主要介绍了批量杀死MySQL连接的四种方法详解,本文分别给出了代码实例,需要的朋友可以参考下方法一 通过information_schema.processlist表中的连接信息生成需要处理掉的MySQL连接的语句临时文件,然后执行临时文件中生成的指令。mysql> select concat('KILL ',id,';') from information_sc...
pt-stalk监控MySQL运行
在MySQL服务器出现短暂(5~30秒)的性能波动的时候,一般的性能监控工具都很难抓住故障现场,也就很难收集对应较细粒度的诊断信息。另外,如果这种波动出现的频率很低,例如几天才一次,我们也很难人为的抓住现场,收集数据。这正是pt-stalk所解决的问题。pt-stalk是Percona-Toolkit的一部分(其前身是Aspersa的一部分)...
TCPDUMP捕获SQL
1、将捕获到的SQL存入文本文件tcpdump -s 65535 -x -nn -q -tttt -i any -c 1000 port 3306 > /mysql.tcp.txttcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes1000 packets captured1016 packets receive...
mysqladmin常用命令汇总
mysqladmin 工具的使用格式:mysqladmin [option] command [command option] command ......参数选项:-c number 自动运行次数统计,必须和 -i 一起使用-i number 间隔多长时间重复执行0)每个两秒查看一次服务器的状态,总共重复5次。[root@test-huanqiu ~]# mysqladmin -uroot -p -i 2 -c 5 status...
mysql sync_binlog和 innodb_flush_log_at_trx_commit
今天聊一聊关于mysql innodb存储引擎中一个事务的完整流程: 首先说下innodb的事务日志概念: ib_logfile文件就是innodb的事务日志,可以理解是INNODB的REDO日志,当数据库异常关闭的时候,innodb存储引擎下的mysql借助事务日志来完成实例恢复,即前滚和回滚来保证数据库一致性;区别于binlog日志又叫二进制...
MySQL InnoDB之锁机制
InnoDB锁模式InnoDB实现了两种类型的行锁。共享锁(S):允许一个事务去读一行,阻止其他事务获得相同的数据集的排他锁。排他锁(X):允许获得排他锁的事务更新数据,但是组织其他事务获得相同数据集的共享锁和排他锁。可以这么理解:共享锁就是我读的时候,你可以读,但是不能写。排他锁就是我写的时候,你不能读也...
【MySql】sql_slave_skip_counter 参数的用法解析
前一篇文章介绍了当mysql的复制出现slave sql 进程终止时的解决办法,其中之一使用了sql_slave_skip_counter 来使sql 线程跳过遇到错误的事件记录!本文浅析一下sql_slave_skip_counter的具体用法...
MySQL Innodb日志机制深入分析
Log & Checkpoint Innodb的事务日志是指Redo log,简称Log,保存在日志文件ib_logfile*里面。Innodb还有另外一个日志Undo log,但Undo log是存放在共享表空间里面的(ibdata*文件)。 由于Log和Checkpoint紧密相关,因此将这两部分合在一起分析。 名词解释:LSN,日志序...
InnoDB数据字典
在InnoDB中,系统表实际上是看不到的,不像Oracle那样可以方便地通过一个查询语句就能得到其中的内容。因为MySQL是一个插件式的数据库管理系统。它的结构分为两层,分别是Server层和存储引擎层。最早的存储引擎是MyISAM,它是没有数据字典的,关于表结构,它拥有的只有.frm文件,所以这导致了InnoDB也必须要...
管理二进制日志
使用参数自动清除二进制日志 默认情况下,MySQL不会移除旧的不运行的二进制日志,expire_logs_days参数可以自动移除二进制日志,该参数默认值是0,意味着不会自动移除二进制日志。给该参数赋大于0的值将会移除那些大于这个值的日志,以天为单位。手动清除二进制日志清除特定文件点击(此处)折叠或打开...
MySQL定位慢SQL
慢日志带来的直接性能损耗就是数据库系统中最昂贵的I/O资源,开启慢查询记录带来的好处是可以通过分析慢SQL来优化SQL语句。 开启慢日志功能步骤如下:1)在my.cnf配置文件里加入以下参数:slow_query_log=1slow_query_log_file=/mysql/data/mysql.slowlong_query_time=2(超过2秒的SQL会记录下来)2)当...
InnoDB引擎和MyISAM引擎的对比
MyISAM支持全文索引,这是一种基于分词创建的索引,支持一些比较复杂的查询,但不是事务安全的,而且不支持外键。每张MyISAM表存在在3个文件中:frm文件存放表格定义;数据文件是MYD(MYData);索引文件是MYI(MYIndex)。对于MyISAM表,可以手工或者自送检查或者修复操作,这一点要注意跟InnoDB的事务恢复区分开来...
MySQL锁机制
MySQL的锁有以下几种形式:表级锁:开销小,加锁快,不会出现死锁,锁定粒度大,发生锁冲突的概率最高,并发度最低。MyISAM引擎属于这种类型。行级所:开销大,加锁慢,会出现死锁,锁粒度最小,发生锁冲突的概率最低,并发度也最高。InnoDB引擎属于这种类型。页面锁:开销和加锁时间介于表锁和行锁之间,会出现死锁,锁...
mysql -e详解
可以用shell脚本操作mysql数据库,使用mysql的-e参数可以执行各种sql的(创建,删除,增,删,改、查)等各种操作 。mysql -hhostname -Pport -uusername -ppassword -e 相关mysql的sql语句,不用在mysql的提示符下运行mysql,即可以在shell中操作mysql的方法。实例:#!/bin/bash...
MySQL故障切换之事件调度器注意事项
事件调度器(event)是在MySQL5.1中新增的任务调度器,解决了在之前版本中只能依赖系统定时任务才能完成的功能。 下边看一个案例:开启event:mysql> set global event_scheduler=ON;Query OK, 0 rows affected (0.01 sec)mysql> show variables like 'event%';+-----------------+-------+| Variable_n...