begin

MySQL小误区:关于set global sql_slave_skip_counter=N 命令的一些点

匿名 (未验证) 提交于 2019-12-02 22:06:11
MySQL小误区:关于set global sql_slave_skip_counter=N 命令的一些点 原文链接地址: 背景知识 1: 在主从库维护中,有时候需要跳过某个无法执行的命令,需要在slave处于stop状态下,执行 set global sql_slave_skip_counter=N以跳过命令。常用的且不易用错的是N=1的情况,但N>1时,则不那么顾名思义,本文详细介绍N的意义,及使用注意事项。 背景知识2: MySQL从库从主库上复制binlog文件内容到本地执行。在binlog上命令以event的形式存在,并非一个命令对应一个event。以一个insert语句为例(引擎InnoDB、binglog_format=statement), 在binlog中实际上有三个event,分别为begin\insert\commit 。 命令类型都是Query_log_event. 而set global sql_slave_skip_counter=N的意思,即为在start slave时,从当前位置起,跳过N个event。每跳过一个event,则N--. 与实际情况不符? 实际上这里还有两个策略: 1、若N=1且当前event为BEGIN, 则N不变,跳过当前event继续。 2、若N=1且当前event处于一个事务之内(BEGIN之后,COMMIT之前),则N不变

[].slice.call的理解

匿名 (未验证) 提交于 2019-12-02 21:53:52
[].slice === Array.prototype.slice true []为创建数组,当[].slice的时候,自然会去找原型链 [].__proto__.slice === Array.prototype.slice true Array.prototype.slice是定义的方法,可以被重写 [].silce是使用定义的方法 自身的属性不同(因为原型与[]的区别) Object.getOwnPropertyNames(Array.prototype) (37) ["length", "constructor", "concat", "pop", "push", "shift", "unshift", "slice", "splice", "includes", "indexOf", "keys", "entries", "forEach", "filter", "map", "every", "some", "reduce", "reduceRight", "toString", "toLocaleString", "join", "reverse", "sort", "lastIndexOf", "copyWithin", "find", "findIndex", "fill", "remove", "removeFirstIf", "removeIf",

普通平衡树

 ̄綄美尐妖づ 提交于 2019-12-02 21:53:50
1 Description 2 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 3 1.插入 x 数 4 2.删除 x 数(若有多个相同的数,应只删除一个) 5 3.查询 x 数的排名(排名定义为比当前数小的数的个数 。若有多个相同的数,因输出最小的排名) 6 4.查询排名为 x 的数 7 5.求 x 的前驱(前驱定义为小于 x ,且最大的数) 8 6.求 x 的后继(后继定义为大于 x ,且最小的数) 9 Input 10 第一行为 n ,表示操作的个数,下面 n 行每行有两个数 opt 和 x , opt 表示操作的序号( 1≤opt≤6 ) 11 Output 12 对于操作 3,4,5,6 每行输出一个数,表示对应答案 13 Sample Input 14 10 15 1 106465 16 4 1 17 1 317721 18 1 460929 19 1 644985 20 1 84185 21 1 89851 22 6 81968 23 1 492737 24 5 493598 25 Sample Output 26 106465 27 84185 28 492737 29 Hint 30 时空限制:1000ms,128M 31 1.n的数据范围: n≤100000 32 2.每个数的数据范围: [−10^7,10^7] 题目 1

shell 文本处理之 awk

﹥>﹥吖頭↗ 提交于 2019-12-02 19:49:38
awk是一个处理文本的编程语言工具,能用简短的程序处理标准输入或文件、数据排序、计算以及生成报表等等。 基本的命令语法:awk option 'pattern {action}' file 其中pattern表示AWK在数据中查找的内容,而action是在找到匹配内容时所执行的一系列命令。花括号用于根据特定的模式对一系列指令进行分组。 awk处理的工作方式与数据库类似,支持对记录和字段处理,这也是grep和sed不能实现的。 在awk中,缺省的情况下将文本文件中的一行视为一个记录,逐行放到内存中处理,而将一行中的某一部分作为记录中的一个字段。用1,2,3...数字的方式顺序的表示行(记录)中的不同字段。用$后跟数字,引用对应的字段,以逗号分隔,0表示整个行。 在Linux系统下默认awk是gawk,它是awk的GNU版本。可以通过命令查看应用的版本:ls -l /bin/awk 选项 描述 -f program-file 从文件中读取awk程序源文件 -F fs 指定fs为输入字段分隔符 -v var=value 变量赋值 --posix 兼容POSIX正则表达式 --dump-variables=[file] 把awk命令时的全局变量写入文件, 默认文件是awkvars.out --profile=[file] 格式化awk语句到文件,默认是awkprof.out 模式

awk

橙三吉。 提交于 2019-12-02 18:41:17
语法 awk [options] 'Pattern{action}' file ... 变量名 含义 $0 整行 $n 列数 $NF 当前行的最后一列 NF 当前行的列数 Action(动作) 参数 含义 print 打印 printf 格式化打印 exit 退出awk if 条件语句 if...else 条件语句 if...else if 条件语句 for 循环语句 while 循环语句 do...while 循环语句 整行输出 {print $0} 等于 {print} {print $0,$1} ","的作用相当于输出$0后,添加一个输出分割符 Pattern(模式) 空模式 关系运算模式 BEGIN/END模式 正则模式 行范围模式 BEGIN/END模式 |参数|含义| |----|----| |BEGIN|在action前执行| |END|在action后执行| 关系运算模式 |关系运算符|含义|用法示例| |----|----|----| |<|小于|x < y| |<=|小于等于|x <= y| |==|等于|x == y| |!=|不等于|x != y| |>=|大于等于|x >= y| |>|大于|x > y| |~|与对应的正则匹配则为真|x~ /正则/| |!~|与对应的正则不匹配则为真|x !~ /正则/| 正则模式 使用{x,y

vector 牛逼 +lower_bound+ upper_bound

倾然丶 夕夏残阳落幕 提交于 2019-12-02 16:40:01
vector 超级 日白 解决的问题空间问题,可以自由伸缩。 一下用法: 向量大小: vec.size(); 向量判空: vec.empty(); 末尾添加元素: vec.push_back(); //例vec.insert(vec.begin()+i,a);在第i+1个元素前面插入a; 末尾删除元素: vec.pop_back(); //例vec.erase(vec.begin()+2);删除第3个元素 vec.erase(vec.begin()+i,vec.end()+j);删除区间[i,j-1];区间从0开始 任意位置插入元素: vec.insert(); 任意位置删除元素: vec.erase(); 交换两个向量的元素: vec.swap(); 清空向量元素: vec.clear(); 开始指针:vec.begin(); 末尾指针:vec.end(); //指向最后一个元素的下一个位置 lower_bound+ upper_bound int help=lower_bound(q[c].begin(),q[c].end(),x)-q[c].begin(); // 找到第一个大于等于的 int trmp=upper_bound(q[c].begin(),q[c].end(),y)-q[c].begin();// 找到第一个大于的 vec【】【】

一个通用的sql server分页查询

蓝咒 提交于 2019-12-02 15:28:32
CREATE PROCEDURE dbo.P_viewPage_A @TableName VARCHAR(200), --表名 @FieldList VARCHAR(2000), --显示列名,如果是全部字段则为* @PrimaryKey VARCHAR(100), --单一主键或唯一值键 @Where VARCHAR(2000), --查询条件 不含'where'字符,如id>10 and len(userid)>9 @Order VARCHAR(1000), --排序 不含'order by'字符,如id asc,userid desc,必须指定asc或desc --注意当@SortType=3时生效,记住一定要在最后加上主键,否则会让你比较郁闷 @SortType INT, --排序规则 1:正序asc 2:倒序desc 3:多列排序方法 @RecorderCount INT, --记录总数 0:会返回总记录 @PageSize INT, --每页输出的记录数 @PageIndex INT, --当前页数 @TotalCount INT OUTPUT, --记返回总记录 @TotalPageCount INT OUTPUT --返回总页数 AS SET NOCOUNT ON IF ISNULL(@TotalCount,'') = '' SET @TotalCount = 0

「NOIP2018」赛道修建

淺唱寂寞╮ 提交于 2019-12-02 12:53:07
传送门 Luogu 解题思路 一眼先二分(上界树的直径,下界最小边权),然后再考虑 \(\text{DP}\) 。 对于当前节点 \(u\) ,在它的所有儿子中分别返回一条匹配不完的长度最大的路径 \(Max\) 。 若该路径长大于二分值,直接修一条,不然丢进 \(\text{multiset}\) 里面。 对于 \(\text{multiset}\) 里的元素每次贪心的找出尽可能大的一条与最小的匹配,若找不到则用来更新 \(Max\) \(check\) 函数里面返回 \(ans\ge m\) ,最后输出答案即可。 细节注意事项 \(\text{multiset}\) 的使用要熟练 参考代码 #include <algorithm> #include <iostream> #include <cstring> #include <cstdlib> #include <cstdio> #include <cctype> #include <cmath> #include <ctime> #include <set> #define rg register using namespace std; template < typename T > inline void read(T& s) { s = 0; int f = 0; char c = getchar(); while (

QuickSort(快排)的JAVA实现

允我心安 提交于 2019-12-02 11:27:19
QuickSort的JAVA实现 这是一篇算法课程的复习笔记 用JAVA对快排又实现了一遍。 先实现的是那个easy版的,每次选的排序轴都是数组的最后一个: package com.algorithms.jiading.www; import java.io.*; import java.util.ArrayList; /* 这是quicksort的java实现:version1,每次选择最后的元素为spilt的中心 */ public class quickSort { public void exchange(ArrayList<Integer> element, int firstIndex, int secondIndex){ Integer temp = element.get(firstIndex); element.set(firstIndex,element.get(secondIndex)); element.set(secondIndex,temp); return; } public int findCenter(ArrayList<Integer> element,int begin,int end){ int i=begin-1; int endValue=element.get(end); for(int j=begin;j<end;j++){ if

[LeetCode]Find Peak Element

本小妞迷上赌 提交于 2019-12-02 11:08:19
二分查找推荐博文 你真的会二分查找吗? http://blog.csdn.net/int64ago/article/details/7425727 解题思路: 比较数组中间两个 数的大小,然后向数较大的那半边数组去寻找peak 前条件:left 指向区间最左边,right指向区间最右边的下一个; 不变式:mid = (left + right) >> 1; 结束条件:mid == left, 这说明,该区间,只有一个元素,也就是我们要找的peak 边界条件:如果硬要说边界条件,那么nums.size() == 0算是一个。 方法一: 时间复杂度为O(n)的方法 class Solution { public: int findPeakElement(vector<int>& nums) { if (nums.size() <= 0) return -1; int peakIndex = 0; int i = 0; for (; i < nums.size(); ++i){ if (i-1 < 0) continue; if (nums[i] < nums[i-1]) break; } peakIndex = i -1; return peakIndex; } }; 方法二: 时间复杂度为O(logn)的方法 二分查找的 递归实现( 8ms ) 思路:利用中间 mid 和 mid