随笔分类 - MySQL
摘要:关于TIMESTAMP和DATETIME的比较 一个完整的日期格式如下:YYYY-MM-DD HH:MM:SS[.fraction],它可分为两部分:date部分和time部分,其中,date部分对应格式中的“YYYY-MM-DD”,time部分对应格式中的“HH:MM:SS[.fraction]”
阅读全文
posted @ 2021-12-16 21:48
屠魔的少年
摘要:CURRENT_TIMESTAMP CURRENT_TIMESTAMP() NOW() LOCALTIME LOCALTIME() LOCALTIMESTAMP LOCALTIMESTAMP()
阅读全文
posted @ 2021-12-16 21:46
屠魔的少年
摘要:一直以来,对于MySQL root密码的忘记,以为只有一种解法-skip-grant-tables。 问了下群里的大咖,第一反应也是skip-grant-tables。通过搜索引擎简单搜索了下,无论是百度,抑或Google,只要是用中文搜索,首页都是这种解法。可见这种解法在某种程度上已经占据了使用者
阅读全文
posted @ 2021-12-16 21:45
屠魔的少年
摘要:在线上进行DDL操作时,相对于其可能带来的系统负载,其实,我们最担心的还是MDL其可能导致的阻塞问题。 一旦DDL操作因获取不到MDL被阻塞,后续其它针对该表的其它操作都会被阻塞。典型如下,如阻塞稍久的话,我们会看到Threads_running飙升,CPU告警。 mysql> show proce
阅读全文
posted @ 2021-12-16 21:40
屠魔的少年
摘要:如果表示MyISAM那么可以直接去到数据库目录mv就可以。 Innodb完全不行,会提示相关表不存在。 第一种方法: RENAME database olddbname TO newdbname 这个是5.1.7到5.1.23版本可以用的,但是官方不推荐,会有丢失数据的危险 第二种方法: 1.创建需
阅读全文
posted @ 2021-12-15 22:58
屠魔的少年
摘要:xtrabackup相信目前使用已经非常广泛了,备份innodb表的首选工具,但是其中还是有点小坑,虽然发生的概率不大,但是我还是踩坑了。关于xtrabackup的详细参考请查阅官方文档http://www.percona.com/doc/percona-xtrabackup/2.2/intro.h
阅读全文
posted @ 2021-12-15 22:56
屠魔的少年
摘要:当我们输入不管大小写都能查询到数据,例如:输入 aaa 或者aaA ,AAA都能查询同样的结果,说明查询条件对大小写不敏感。 解决方案一: 于是怀疑Mysql的问题。做个实验:直接使用客户端用sql查询数据库。 发现的确是大小不敏感 。 通过查询资料发现需要设置collate(校对) 。 colla
阅读全文
posted @ 2021-12-15 22:40
屠魔的少年
摘要:pt-archiver相信大家都非常熟悉了,该工具可以按指定条件导出数据到文件,也可以按指定条件清理数据,同时也可以按条件把数据归档到另外一个表。最近在工作中无意发现在某种场景下会导致归档数据丢失。 下面建立表复现数据丢失的场景: 通过把表t1的数据归档到t2,条件是insert_time >= "
阅读全文
posted @ 2021-12-15 22:33
屠魔的少年
摘要:简介 go-sniffer 可以抓包截取项目(MySQL、Redis、MongoDB)中的请求并解析成相应的语句,并格式化输出。类似于在之前的文章 MySQL抓包工具:MySQL Sniffer【转】中介绍的mysql-sniffer。而 go-sniffer 可以对更多数据库进行抓包分析,现在来介
阅读全文
posted @ 2021-12-14 23:17
屠魔的少年
摘要:前言 当提到MySQL数据库的时候,我们的脑海里会想起几个关键字:索引、事务、数据库锁等等,索引是MySQL的灵魂,是平时进行查询时的利器,也是面试中的重中之重。 可能你了解索引的底层是b+树,会加快查询,也会在表中建立索引,但这是远远不够的,这里列举几个索引常见的面试题: 1、索引为什么要用b+树
阅读全文
posted @ 2021-12-14 23:11
屠魔的少年
摘要:在上篇文章《MySQL表结构变更,不可不知的Metadata Lock》中,我们介绍了MDL引入的背景,及基本概念,从“道”的层面知道了什么是MDL。下面就从“术”的层面看看如何定位MDL的相关问题。 在MySQL 5.7中,针对MDL,引入了一张新表performance_schema.metad
阅读全文
posted @ 2021-12-14 23:06
屠魔的少年
摘要:前言 MySQL在2016年仍然保持强劲的数据库流行度增长趋势。越来越多的客户将自己的应用建立在MySQL数据库之上,甚至是从Oracle迁移到MySQL上来。但也存在部分客户在使用MySQL数据库的过程中遇到一些比如响应时间慢,CPU打满等情况。阿里云RDS专家服务团队帮助云上客户解决过很多紧急问
阅读全文
posted @ 2021-12-14 23:02
屠魔的少年
摘要:前言 pt-fk-error-logger,通过定时拉取和解析show engine innodb status相关信息,并将错误信息打印在屏幕 或 写到日志文件 或 写到表,从而实现将所有发生的违反外键约束错误都保存下来;该工具默认是永久运行的,除非设置了--run-time 或 --iterat
阅读全文
posted @ 2021-12-14 22:41
屠魔的少年
摘要:前言 pt-find这个工具,和Linux find命令类似,通过SHOW TABLE STATUS方式,查找特定的表并执行一些SQL语句,对于日常运维工作也是有比较大的帮助。 pt-find 基本用法 (1)基本语法 pt-find [OPTIONS] [DATABASES] (2)常见选项 --
阅读全文
posted @ 2021-12-14 22:40
屠魔的少年
摘要:前言 pt-fingerprint是Percona Toolkit工具集的其中一个,可以将SQL语句格式化为抽象化形式,可以用于数据脱敏等场景,接下来我们看一下。 pt-fingerprint 基本用法 (1)基本语法 pt-fingerprint [OPTIONS] [FILES] (2)常见选项
阅读全文
posted @ 2021-12-14 22:39
屠魔的少年
摘要:前言 相信大多数DBA都遇见过这样一个场景:开发同事给到一个非常大的SQL文件,里面包含了几千万甚至几亿行记录,这个时候我们应该怎么处理呢?如果直接导入的话,一方面串行执行效率比较低,另一方面大事务也可能导致主从复制延迟。pt-fifo-split这个工具,可以对大文件进行切割,就可以很好解决这个问
阅读全文
posted @ 2021-12-14 22:38
屠魔的少年
摘要:前言 在数据库中,索引可以加快查询速度,但是索引并不是越多越好,索引过多会带来额外的维护成本,降低DML操作的效率。pt-duplicate-key-checker这个工具,通过SHOW CREATE TABLE检查每一张表,找出其中重复/冗余的索引。 pt-duplicate-key-checke
阅读全文
posted @ 2021-12-14 22:36
屠魔的少年
摘要:前言 数据库的死锁,是开发和DBA都非常关注的信息,但是在MySQL中,查看死锁信息却不是非常方便,通过show engine innodb status只能查看最近一次发生的死锁信息,之前的死锁信息会被覆盖掉;这时候我们可以利用pt-deadlock-logger这个工具实现这个需求。 pt-de
阅读全文
posted @ 2021-12-14 22:36
屠魔的少年
摘要:pt-config-diff 基本用法 (1)基本语法 pt-config-diff [OPTIONS] CONFIG CONFIG [CONFIG...] (2)配置文件之间的对比 pt-config-diff /etc/my-1.cnf /etc/my-2.cnf (3)配置文件和系统变量之间的
阅读全文
posted @ 2021-12-14 22:35
屠魔的少年
摘要:前言 在日常工作中,时不时会收到内存使用率高的告警,那么我们应该如何处理呢?本文将从Linux和MySQL两个层面,介绍内存管理的相关知识点,希望能给大家带来一些帮助,以便更好地应对内存问题。 如何看懂内存指标 遇到内存问题,可以先通过free、vmstat、top等命令,进行检查。free命令,可
阅读全文
posted @ 2021-12-14 22:34
屠魔的少年