现在位置: 首页

MySQL线上大表如何无害删除??

时间:2019年04月19日 | 分类:数据库优化 | 评论:0 条 | 浏览:299 次
在我们日常的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.系...
阅读全文

FLUSH TABLE WITH READ LOCK详解

时间:2019年03月21日 | 分类:备份恢复 | 评论:0 条 | 浏览:296 次
FLUSH TABLES WITH READ LOCK简称(FTWRL),该命令主要用于备份工具获取一致性备份(数据与binlog位点匹配)。由于FTWRL总共需要持有两把全局的MDL锁,并且还需要关闭所有表对象,因此这个命令的杀伤性很大,执行命令时容易导致库hang住。如果是主库,则业务无法正常访问;如果是备库,则会导致SQL线程卡住,主备延迟。本文将详细介绍FTWRL到底做了什么操作,每个操作的对库的影响,以及操作背后的原因。 FTWRL做了什么操作? FTWR...
阅读全文

MySQL查询条件中字符串包含空格的问题

时间:2018年07月30日 | 分类:SQL基本用法 | 评论:0 条 | 浏览:624 次
问题 最近在联调某个业务时发现使用的签名总是验证不过,在MySQL中查询了该业务的私钥配置和业务侧的配置是一样的,问题就出在SQL查询这里,最后将配置导出到本地发现私钥后面多了一个空格,将空格删除然后签名计算OK。问题是:为什么在DB查询条件中的字符串没有包含空格也可以查到实际包含空格的这条记录呢? 原因 如果字段是char或varchar类型,那么在字符串比较的时候MySQL使用PADSPACE校对规则,会忽略字段末尾的空格字符,...
阅读全文

insert into a select * from b 锁问题分析

时间:2018年07月13日 | 分类:SQL基本用法 | 评论:0 条 | 浏览:1,291 次
很长一段时间,都认为"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 监控用户(backend-monitor-pwds)未配置,引起后端DB日志出现登陆报错

时间:2018年06月29日 | 分类:数据库代理 | 评论:0 条 | 浏览:852 次
最近,在新上线的一套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的配置文件,版本等信息,发现都是一样,无差异。 这样看来...
阅读全文

DBProxy Warning: Syntax Forbidden Set option:^A 分析及应对方案

时间:2018年06月28日 | 分类:数据库代理 | 评论:0 条 | 浏览:1,226 次
      在我们的日常运维中,随着公司业务的持续发展,DB的单机性能逐渐满足不了要求,大家首先想到的可能是拆表,拆库,扩容,归档,提升硬件配置等等,但实际业务场景中,往往优先出现瓶颈的是读的性能,这也就是,我下面要说的数据库读写分离。        目前,每个公司的读写分离策略都不太一样,有的采用的是开源的数据库中间件,对应用开发来说,是透明的;有的公司采用的是代码层时间读写分离,需要对代码有一定的倾入性;...
阅读全文

Hadoop+hbase+hive环境搭建

时间:2018年02月11日 | 分类:hadoop | 评论:0 条 | 浏览:906 次
Hadoop是一个开发和运行处理大规模数据的平台,实现在多台计算机组成的集群中对海量数据进行分布式计算。 hadoop框架最核心的部分是hdfs和mapreduce。hdfs提供了海量数据的存储,mapreduce提供了对数据的计算。 hadoop处理海量数据,需要hbase做数据库,hbase是面向列的分布式数据库,使用集群环境的内存做处理,但是不支持sql语句,所以操作和计算数据非常不方便,于是整合hive,hive支持sql语句,让hive支撑在hbase数据库层面...
阅读全文

MySQL优化器:index merge介绍

时间:2018年01月17日 | 分类:数据库优化 | 评论:0 条 | 浏览:936 次
在MySQL官方手册上,关于index merge的介绍非常非常少。甚至还有不少误导的地方,这次把5.1版本关于此类优化处理的代码细看了一遍,以案例的方式介绍了各种实用index merge访问类型的SQL。后续的还会继续介绍index merge实现的主要数据结构,以及成本评估。 1. 什么是index merge MySQL优化器如果发现可以使用多个索引查找后的交集/并集定位数据,那么MySQL优化器就会尝试index merge这类访问方式。index merge主要分为两大类,...
阅读全文

Linux抓包工具tcpdump

时间:2017年02月05日 | 分类:Linux | 评论:0 条 | 浏览:2,325 次
tcpdump是查看网络状况,诊断网络问题的利器,熟练的使用可以很容易看到连接的建立,收发数据,断开 tcpdump采用命令行方式,它的命令格式为: tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ] [ -i 网络接口 ] [ -r 文件名] [ -s snaplen ] [ -T 类型 ] [ -w 文件名 ] [表达式 ] tcpdump的选项介绍 -A     以ASCII格式打印出所有分组,并将链路层的头最小化。 -c      在收到指定的数量的分组后,tcpdump就会停止。 -C...
阅读全文

MySQL自带的性能压力测试工具mysqlslap

时间:2017年02月05日 | 分类:初识MySQL | 评论:0 条 | 浏览:2,965 次
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服务器的主机名...
阅读全文
×