也谈 xtrabackup 的 DBD::mysql module is not installed 问题 xtrabackup 备提示 DBD::mysql module is not installed,是否一定要安装perl-DBD-MySQL呢?
为 FETCH 子句提供的行数必须大于零 SQL Server从2012开始提供OFFSET FETCH子句,用于分页查询数据,最近遇到了一个问题,需要用到FETCHNEXT0,结果提示“为 FETCH 子句提供的行数必须大于零”,这才发现居然是不能使用0值的,不明白微软为啥要弄出这么一个限制。解决的办法,使用子查询,即类似于这样的写法:SELECT TOP0 * FROM(SELECT XXXX FETCH NEXT) D为什么一定要FETCH NEXT0呢?熟悉查询优化的同学都知道,使用OF...
MySQL 8.0踩坑之双写负优化 最近,在MySQL中LOAD数据的时候遇到了一个诡异的问题,LOAD一个1G的文件(LOAD到表之后,表的数据文件约2G)。在5.7版本中一切正常,不到3分钟完成。将版本切换到8.0之后,性能急剧下降,1个小时也没有完成任务。 MySQL 5.7和8.0都使用的是同一台虚拟机,并且在部署MySQL时,都是基于相同的保存点进行,所以可以基本上可以排除是虚拟机和操作系统的问题。 通过对比5.7与8.0的配置,除了两者互不存在的一些配置项,以及一些明显与性能无关的...
pgsql在分区表与非分区表中自由切换 pgsql在版本10中推出了声明式分区表,算是让分区表这个功能走上了正轨。(之前的版本为继承+触发器,和SQL Server的分区视图有点像,算是粗制)。 随着其版本发展,功能也越来越强,但今天要介绍的是基础功能:如何优雅地在分区表和非分区表切换。 pgsql分区表有一个笔者非常喜欢的特性,分区列是自由的,不和唯一约束绑定,在诸如SQL Server、MySQL中,当你尝试把普通表转换为分区表时,会强制要求你把分区列加到唯一性约束中(主键、唯一约束/索引)...
欢迎光临 https://github.com/zjcxc 在 github 上搭了个窝,欢迎大家光临zjcxc (github.com) 发布的第一个开源代码源自于对mysqldump的功能改造增强zjcxc/mysqldump (github.com)基于5.7.35 修改实现的功能:为 -A,--all-databases 选项增加数据库过滤(排除)功能 为 -w,--where 选项增加条件扩展,当指定的条件以#打头时,表示后面跟的是存储过程,由存储过程返回当前表的筛选条件。存储过程包含两个固定参数:dbnam...
让myqldump为不同的表使用不同的条件 mysqldump支持使用-w,--where参数为要dump的表定义条件,但这个条件是全局的。也就是说,无论你要dump的是单表,还是多表,所有的表都使用这个条件。 如果我们要dump多个表,并且不同的表要使用不同的条件,或者是仅想为dump中,某些表指定条件的情况下,dump就无法做到了。如果不考虑数据一致性,那么还可以根据条件分别导出各表。如果要保持所有表的数据一致性,那么除了分批,还要考虑追加dump过程中产生的binlog日志,这就比较头大了。 ...
姿势很重要--记一次字符筛选的处理 最近处理了一个需求,找出数据中的所有生僻字,数据约1000万条,每条大约20多个字,结果文件500M。生僻字的判断标准是二级字库(600多个字)外的所有字都算生僻字。 最开始的想法很简单,两个循环:每条记录,针对二级字库中的每个字替换一次,输出结果。Powershell 脚本做这个操作So easy,跑起来之后,告知需求方第二天拿结果(1000万*6000的循环,想想也知道要跑很久)、 然后到了第二天,这个处理还没结束,由于没有输出进度,所以无法判断处...
mysqldump的几个坑 记录一下在mysqldump使用中遇到的几个坑。一号小坑(和中彩票差不多的机率会遇到):对象名中包含换行符,且dump包含 --routines 选项时,会出现类似下面的错误:---- Dumping routines for database 'a-- b'--mysqldump: Couldn't execute 'use `ab`': Unknown database 'ab' (1049)二号小坑(遇不遇得上看运气):由于mysqldump在导出数据时,是按show dat...
说说阿里云RDS MySQL的一些缺点 RDS MySQL用了有一小段时间了,来说一说它的缺点(优点是不用我提的,它的文档、客服、技术支持人员都会告诉您) 首先说说它对比原版所做的优化改进,说到这方面的时候,应该会有很多人说,阿里的技术牛,他在这方面肯定做了很多优化,用RDS一定比官方的跑得快,但事实上,如果你真正看过它与官方版本的功能对比,你会发现,RDS所列出来的功能优势,是体现在外部功能扩展上,核心的优化并没有提(也许你会认为它是谦虚),但事实上,我们拿了一些常见的操作,在RDS与官方版本之间做对比,我们并...
通用性能指标监控系统打造完工 服务器性能指标监控通常由IT负责,所以之前并没有打造自己的性能指标监控的考虑,最近需要做MongoDB的性能指标监控,也考虑到直接使用IT的监控系统的诸多不使得的地方,所以在这次花了些时间,直接打造了一款通用的性能指标监控系统。 整个监控系统分成三部分:数据采集、监控报表、监控报警数据采集: 数据采集使用集中采集方式,在一台服务器上采集所有需要监控的服务器信息,使用自己开发的程序,调用标准的命令(Powershell、sqlcmd、mongo、mysql、plink)做数据采...
记录一下这个有点绕的数据分配查询 在论坛上看到这样一个需求,有两个表,数据分别如下 表A (id, name, value ) (1, ‘A’, 2000), (2, ‘A’, 2000) 表B (id, a_name, name, value) (1, ‘A’, ‘A1’, 1000), (2, ‘A’, ‘A2’, 2000), (3, ‘A’, ‘A3’, 3000) 要求根据表A的 value 值,查询...
忘记 SQL Server 管理员密码的处理 如果忘记 SQL Server 管理员密码,可以使用下面的方式处理 1. 使用 SQL Server 服务器计算机本地 Administrators 组的任何成员登录到 SQL Server 服务器 2. 确定忘记管理员密码的 SQL Server 服务 可以在服务(services.msc)里面查看,或者使用下面的 Powershell 命令 Get-Service | ? Displ
MySQL中单句实现无限层次父子关系查询 在 SQL Server 中,使用 CTE 表达式很容易做到无限层次父子关系查询;在不支持CTE表达式的版本中,借助函数递归也可以轻松实现。 在 MySQL 中,这个需求的实例稍显复杂, MySQL 中没有支持递归的查询,没有表值函数,函数不支持递归,所以通常都是用循环实现,显得比较别扭。今天看到一个用单条语句实现的递归查询,想法独特,分享一下。表结构和数据CREATE TABLE table1(