现在位置: 首页 > 关系型数据库 > 文章
2019年04月19日 数据库优化 ⁄ 共 668字 暂无评论 ⁄ 阅读 243 次
在我们日常的DB维护中,经常会遇到大表删除问题,大表如果在数据层进行drop操作,将会对磁盘造成很大的IO冲击,进而导致线上业务有问题 这里我们采用针对数据文件建立硬链,欺骗mysql,进行删表操作,然后,再在系统层进行删除 1.新建临时表 mysql> create table event_message_tmp like event_message; 2.新旧表切换 mysql> rename table event_message to event_message_old,event_message_tmp to event_message; 3.系...
阅读全文
2019年03月21日 备份恢复 ⁄ 共 3611字 暂无评论 ⁄ 阅读 260 次
FLUSH TABLES WITH READ LOCK简称(FTWRL),该命令主要用于备份工具获取一致性备份(数据与binlog位点匹配)。由于FTWRL总共需要持有两把全局的MDL锁,并且还需要关闭所有表对象,因此这个命令的杀伤性很大,执行命令时容易导致库hang住。如果是主库,则业务无法正常访问;如果是备库,则会导致SQL线程卡住,主备延迟。本文将详细介绍FTWRL到底做了什么操作,每个操作的对库的影响,以及操作背后的原因。 FTWRL做了什么操作? FTWR...
阅读全文
2018年07月30日 SQL基本用法 ⁄ 共 755字 暂无评论 ⁄ 阅读 578 次
问题 最近在联调某个业务时发现使用的签名总是验证不过,在MySQL中查询了该业务的私钥配置和业务侧的配置是一样的,问题就出在SQL查询这里,最后将配置导出到本地发现私钥后面多了一个空格,将空格删除然后签名计算OK。问题是:为什么在DB查询条件中的字符串没有包含空格也可以查到实际包含空格的这条记录呢? 原因 如果字段是char或varchar类型,那么在字符串比较的时候MySQL使用PADSPACE校对规则,会忽略字段末尾的空格字符,...
阅读全文
2018年07月13日 SQL基本用法 ⁄ 共 3039字 暂无评论 ⁄ 阅读 1,198 次
很长一段时间,都认为"insert into a select * from b" 会导致b表被锁住。在最近一次组内同事的质疑中,发现错了.b表会不会被锁,其实和隔离级别有一定关系,下面我们具体分析一下 环境说明: 1.隔离级别:REPEATABLE-READ 2.MySQL版本:5.6.29 3.Binlog格式:ROW 4.建表SQL: CREATE TABLE `os_diskio_history_bak` ( `id` int(10) NOT NULL AUTO_INCREMENT, `ip` varchar(50) NOT NULL, `tags` varchar(100) DEFAULT NULL, `fd...
阅读全文
最近,在新上线的一套DBProxy+MySQL项目过程中,发现后端MySQL DB出现登陆报错: [Warning] Access denied for user 'apps'@'192.168.1.146' (using password: NO) 以上报错为测试环境,模拟产生的报错信息,实际生产环境是 Access denied for user 'root'@'proxy IP' (using password: NO) 查看了其它DBProxy后端的DB,没有此类报错。 对比问题DBPrroxy和正常DBProxy的配置文件,版本等信息,发现都是一样,无差异。 这样看来...
阅读全文
2018年06月28日 数据库代理 ⁄ 共 4871字 暂无评论 ⁄ 阅读 1,189 次
      在我们的日常运维中,随着公司业务的持续发展,DB的单机性能逐渐满足不了要求,大家首先想到的可能是拆表,拆库,扩容,归档,提升硬件配置等等,但实际业务场景中,往往优先出现瓶颈的是读的性能,这也就是,我下面要说的数据库读写分离。        目前,每个公司的读写分离策略都不太一样,有的采用的是开源的数据库中间件,对应用开发来说,是透明的;有的公司采用的是代码层时间读写分离,需要对代码有一定的倾入性;...
阅读全文
2018年01月17日 数据库优化 ⁄ 共 4664字 暂无评论 ⁄ 阅读 904 次
在MySQL官方手册上,关于index merge的介绍非常非常少。甚至还有不少误导的地方,这次把5.1版本关于此类优化处理的代码细看了一遍,以案例的方式介绍了各种实用index merge访问类型的SQL。后续的还会继续介绍index merge实现的主要数据结构,以及成本评估。 1. 什么是index merge MySQL优化器如果发现可以使用多个索引查找后的交集/并集定位数据,那么MySQL优化器就会尝试index merge这类访问方式。index merge主要分为两大类,...
阅读全文
2017年02月05日 初识MySQL ⁄ 共 1804字 暂无评论 ⁄ 阅读 2,927 次
mysqlslap是从MySQL的5.1.4版开始就开始官方提供的压力测试工具。 通过模拟多个并发客户端并发访问MySQL来执行压力测试,同时提供了较详细的SQL执行数据性能报告,并且能很好的对比多个存储引擎(MyISAM,InnoDB等)在相同环境下的相同并发压力下的性能差别。 mysqlslap 官方介绍:http://dev.mysql.com/doc/refman/5.6/en/mysqlslap.html 常用参数 [options] 详解 --host=host_name, -h host_name 连接到的MySQL服务器的主机名...
阅读全文
2016年08月17日 备份恢复 ⁄ 共 929字 暂无评论 ⁄ 阅读 3,856 次
昨晚,有个朋友说它的DB有张表,被研发误删了一部分数据,咨询我一些恢复的思路: 环境:全备、增备、日志、主从、binlog-format=mixed 由于binlog格式的限制,没法从binlog里面反向解析误删数据,因此,就有了下面的思路,有什么遗漏的或者不到位的地方,欢迎大家指正!! 1.必须有xtrabackup备份 这里包括全备和增备 2.在全备和增备上都执行--apply-log --redo-only操作 执行完此操作后,备份的数据目录里会包含以下几种数据...
阅读全文
2016年05月30日 MySQL故障 ⁄ 共 1744字 暂无评论 ⁄ 阅读 4,051 次
今天,研发提交了一个死锁信息,涉及到自增表的死锁,测试,压测产生的死锁信息,并发500,信息如下: 从上面死锁信息来看,lock mode AUTO-INC waiting,应该是表的自增列的问题,初步了解,这个死锁和 innodb_autoinc_lock_mode 的值有一定的关系,但也不因全归咎于mysql的问题。 从5.6的用户手册中查找到AUTO-INC的相关信息: InnoDB uses a special lock called the table-level AUTO-INC lock for inserts into tables wit...
阅读全文
×