随笔分类 - MySQL
摘要:现在有很多工具可以将mysql数据库中数据直接dump为excel表格模式,例如,navicat,sqlyog等,但是个人认为最好用是navicat,但是navicat需要收费。 通过select into outfile 可将数据导出为.txt格式,然后再通过python脚本将.txt格式转换成x
阅读全文
摘要:percona-toolkit中pt-index-usage的实现原理:pt-index-usage先要根据日志分析查询,然后连接MySQL数据库,通过explain来检查查询所生成的访问路径。而且他默认只能按照"慢日志"的方式读取文件。 该工具运行分为两个阶段:第一阶段,该工具将对数据库中的所有表
阅读全文
摘要:大表的DDL的变更大部分都是使用Percona的pt-online-schema-change,本文说明下另一种工具gh-ost的使用:不依赖于触发器,是因为他是通过模拟从库,在row binlog中获取增量变更,再异步应用到ghost表的。 1、下载安装地址: https://github.com
阅读全文
摘要:MySQL5.6.37版本,某人在测试环境主库误操作执行删表操作,导致主从断开,在从库查看主从信息如下: Last_Errno: 1837 Last_Error: Worker 3 failed executing transaction '' at master log mysql-bin.013
阅读全文
摘要:<高性能MySQL> MySQL架构 mysql的架构图: 客户端 连接/线程处理 查询缓存 解析器 优化器 存储引擎 mysql事务ACID:1、原子性:automicity 要么全部执行成功,要么全部执行失败,这就是事务的原子性2、一致性:consistency 从一个一致性的状态转换到另外一个
阅读全文
摘要:mysql left join 会取得左表的全部数据,即使右表并无完全匹配的结果d表: [yoon]> select * from d; + + + + | id | number | name | + + + + | 1 | 12345 | aa | | 3 | 123456 | aa | | 5
阅读全文
摘要:某些时候需要判断binlog中是否有大事物的存在,比如在解决master-slave延迟高的情况下。 工具下载地址:http://pan.baidu.com/s/1jHIWUN0 表结构 < yoon]> show create table a\G *************************
阅读全文
摘要:简介MySQL Sniffer 是一个基于 MySQL 协议的抓包工具,实时抓取 MySQLServer 端的请求,并格式化输出。输出内容包访问括时间、访问用户、来源 IP、访问 Database、命令耗时、返回数据行数、执行语句等。有批量抓取多个端口,后台运行,日志分割等多种使用方式,操作便捷,输
阅读全文
摘要:MySQL 字符串截取函数:left(), right(), substring(), substring_index()。还有 mid(), substr()。其中,mid(), substr() 等价于 substring() 函数,substring() 的功能非常强大和灵活。 1、字符串截取
阅读全文
摘要:pt-kill 选项 --config 指定配置文件 --daemonize 后台运行 --database -D 指定连接的数据库 --group-by 默认情况下,查询结果不分组; group-by可以将查询结果相似的类进行分组,分组条件: user,host,command,state等 --
阅读全文
摘要:一、PT 安装: [root ~]$ yum install perl-IO-Socket-SSL perl-DBD-MySQL perl-Time-HiRes -y [root ~]$ rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm [root ~]$ rpm -i
阅读全文
摘要:key_len表示索引使用的字节数,根据这个值可以判断索引的使用情况,特别是在组合索引的时候,判断该索引有多少部分被使用到非常重要。 在计算key_len时,下面是一些需要考虑的点:索引字段的附加信息:1.可以分为变长和定长数据类型讨论;2.当索引字段为定长数据类型时,如char,int,datet
阅读全文
摘要:通过 explain 命令获取 select 语句的执行计划,通过 explain 我们可以知道以下信息:表的读取顺序,数据读取操作的类型,哪些索引可以使用,哪些索引实际使用了,表之间的引用,每张表有多少行被优化器查询等信息。 explain 信息有10列,分别是id,select_type,tab
阅读全文
摘要:新建一张测试表: CREATE TABLE `tb1` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `a` decimal(19,2) NOT NULL, `acid` bigint(20) NOT NULL, `prid` bigint(20) NOT N
阅读全文
摘要:IF函数根据条件的结果为 true 或 false ,返回第一个值,或第二个值 语法: IF(condition, value_if_true, value_if_false) 参数 描述 condition 必须,判断条件 value_if_true 可选,当条件为true值返回的值 value_
阅读全文
摘要:SELECT CONCAT( "alter table ", TABLE_SCHEMA, ".", TABLE_NAME, " modify ", COLUMN_NAME, " bigint(20)", IF ( IS_NULLABLE = 'NO', " NOT NULL", "" ), IF (
阅读全文
摘要:pt-online-schema-change使用 工作原理:1、如果存在外键,根据alter-foreign-keys-method参数的值,检测外键相关的表,做相应设置的处理。没有使用 --alter-foreign-keys-method=rebuild_constraints 指定特定的值,
阅读全文
摘要:生产环境中我们时常遇到这样的情况,数据库性能恶劣,需要马上杀掉部分会话,不然数据库就夯死。我们可以先找show processlist的输出来杀会话,但是比较麻烦。pt-kill为我们解决了杀会话问题。 1、每10秒检查一次,发现有 Query 的进程就给干掉# 只打印每10秒检查一次:(--int
阅读全文
摘要:1、查看当前应用连接,连接数突增排查 select user,SUBSTRING_INDEX(host,':',1) as ip , count(*) as count,db from information_schema.processlist where host not in ('localh
阅读全文
摘要:mysqld_exporter自带的这个功能,下面是我使用的启动参数: nohup ./mysqld_exporter --config.my-cnf="./my.cnf" --web.listen-address=":9104" --collect.heartbeat --collect.auto
阅读全文