- 博客(162)
- 问答 (1)
- 收藏
- 关注
原创 golang context笔记
contexttype Context interface { Deadline() (deadline time.Time, ok bool) Done() <-chan struct{} Err() error Value(key interface{}) interface{}}Deadline:返回的第一个值是 截止时间,到了这个时间点,Co...
2020-05-08 15:17:02
320
原创 转发了解一下规则引擎
1、再见了 ! if-else !拥抱规则引擎 链接2、规则引擎的原理与功能 链接3、规则引擎——Drools 链接4、Drools中文网 链接
2019-08-23 15:52:24
279
原创 为什么我只查一行的语句,也执行这么慢?读后总结
sql执行慢的常见原因:mysql压力大,CPU占用率高,IO利用率高。这不属于今天讨论的范围。造表与造数据的语句mysql> CREATE TABLE t (id int(11) NOT NULL,c int(11) DEFAULT NULL,PRIMARY KEY (id)) ENGINE=InnoDB;delimiter ;;create procedure idata...
2019-08-23 09:40:39
362
原创 转发Elastic Search 的原理和使用
1、Elasticsearch-基础介绍及索引原理分析 链接2、基于 Go 和 Elasticsearch 构建一个搜索服务 链接3、用容器快速上手Elasticsearch 链接
2019-08-22 12:21:23
244
原创 为什么这些sql语句逻辑相同,性能却差异巨大读后总结
1.条件字段函数操作例子有一张日志表,查询 指定年限7月的记录总数mysql> CREATE TABLE tradelog (id int(11) NOT NULL,tradeid varchar(32) DEFAULT NULL,operator int(11) DEFAULT NULL,t_modified datetime DEFAULT NULL,PRIMARY KEY...
2019-08-22 09:23:01
388
原创 如何正确地显示随机消息?读后总结
背景:有个单词表,随机显示3个单词建表语句与初始化语句mysql> CREATE TABLE words (id int(11) NOT NULL AUTO_INCREMENT,word varchar(64) DEFAULT NULL,PRIMARY KEY (id)) ENGINE=InnoDB;delimiter ;;create procedure idata()b...
2019-08-21 10:23:05
359
原创 转发 Elastic Search 和 Solr 你用哪个?
1、搜索引擎选择: Elasticsearch与Solr 链接2、ElasticSearch(ES)和solr的关系和区别 链接3、[译]ElasticSearch vs. Solr 链接4、全文搜索引擎 Elasticsearch 入门教程 链接...
2019-08-20 11:52:58
197
原创 order by 是怎么工作的?读后总结
order by 排序的两种模式全字段排序我们一般用explain命令查看sql是否使用排序。一般查看extra字段的描述。mysql会为每个线程分配一块内存用于排序 称为sort_buffer我们以这条sql查询为例select city,name,age from t where city=‘sz’ order by name limit 1000首先将满足条件的记录中的city...
2019-08-20 10:42:04
260
原创 普通索引与唯一索引,应该怎么选择?读后总结
在业务代码已经保证了不会写入重复的字段,那么尽量使用普通索引普通索引与唯一索引对比:在查询过程select id from t where k=5;从这条查询语句开始分析,分别分析k为普通索引时与唯一索引是的区别普通索引:在查到满足条件的记录,还需要继续往下查找。这里就用到了之前说的假设,业务已经保证了不会写入重复字段,否则查询次数与重复记录成线性增长。但是若不重复的情况。也就比唯一索引多...
2019-08-19 20:06:19
277
原创 答疑文章(一):日志与索引相关问题读后总结
日志相关的问题:mysql 利用 binlog与redo log做 崩溃恢复。mysql利用了二阶段提交维护了主备数据一致性(PS:对mysql的崩溃恢复,以及异常数据恢复不是一样的情况需要注意)两阶段提交:取ID=2这一行 =》判断数据页是否在内存中,不在就从磁盘中读入内存中返回数据。=》将这一行的c值加1,写入新行=》新行更新到内存=》写入redo log处于prepare阶段。=》写...
2019-08-19 18:05:53
315
原创 count()这么慢,我该怎么办读后总结
计算一个表的行数语句:select count(*) from t;innodb中这条语句的查询时间会随着表记录增加而增加。count()是实现方式count()是在引擎层面实现的,不同的引擎有不同的实现。1.MYISAM是将表的总行数存在磁盘上。count()会直接返回这个值,很高效,但是如果加上了where条件,也需要遍历。2.Innodb在执行count()的时候需要一行一行从引...
2019-08-19 10:04:17
4586
原创 为什么表数据删除一半,表文件大小不变?读后总结
现象:删除了表数据,但是表文件大小不变针对的引擎是innodb表数据既可以放在共享表空间里,也可以是单独的文件。由innodb_file_per_table控制。off为将表数据放在系统共享表空间,on将表数据存储在一个.ibd为后缀的文件中。建议是将innodb_file_per_table设置为on。数据删除流程innodb数据是由b+树组织的,当我们删除某一条记录,引擎只将标记该...
2019-08-16 10:52:46
720
1
原创 为什么我的mysql会抖一下读后总结
“抖”:sql执行变慢了,随机出现,持续时间短。刷脏页的原因:innodb在更新数据的时候,更新内存,写redo log,(并没有将内存数据页同步到磁盘上)。这里引出两个概念:脏页 内存页与磁盘页数据不一致的内存页干净页 内存页与磁盘页数据一致的内存页flush脏页就是将内存页的数据更新到磁盘刷脏页的触发时机:redo log 写满了。flush脏页。内存不足,淘汰数据页,...
2019-08-15 19:16:25
226
原创 194. Transpose File
翻转输入 输入 name age alice 21 ryan 30 输出 name alice ryan age 21 30awk '{for(i = 1; i <= NF; i++){if(NR == 1){a[i]=$i}else{a[i]=(a[i]" "$i)}}}END{for(i in a){print a[i]}}' file.txtPS: awk中字符串连接用”“连接
2018-05-08 17:44:15
335
原创 195. Tenth Line
打印第十行。 awk 'NR==10' file.txt sed -n '10p' file.txt PS: NR是awk中的内置变量,表示当前的行数。 sed -n '10p' 只打印第十行 sed -n 'p;n' file.txt只打印奇数行 sed -n 'n;p' file.txt只打印偶数行
2018-05-08 17:10:55
400
原创 193. Valid Phone Numbers bash正则
描述 输入 987-123-4567 123 456 7890 (123) 456-7890 输出 987-123-4567 (123) 456-7890 正则匹配过滤。grep -E '^([0-9]{3}-|\([0-9]{3}\) )[0-9]{3}-[0-9]{4}$ file.txt'grep -E表示通过正则过滤文本。 ^匹配开始 $匹配结尾 |条件或 关键是匹配
2018-05-08 16:56:46
306
原创 bash词频统计 leetcode192. Word Frequency
words.txt.用 空格分开,统计词频,根据词频排序,从大到小。awk '{for(i=1;i<=NF;++i){++m[$i]}}END{for(k in m){print k, m[k}}' words.txt | sort -nr -k 2复习一下awk的语法。不用容易忘。 awk 是逐行检索文本。分为3的部分。 BEGIN{#这里进行一些检索文本前的初始化操作} ...
2018-05-08 15:09:02
1814
原创 priority_queue用法笔记与Top K Frequent Elements结合
简介priority_queue是有权值的队列。默认使用大根堆来实现。 push() 从队尾插入,经过堆调整至合适的位置。 top() 查看队头数据。 pop() 弹出队头数据。// priority_queue.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include <...
2018-05-08 12:41:42
516
原创 提取文件指定子串python+awk
例子提取文件中的特定子串123142134sadfsadlzsfdsafszdfdsq431535e4qt/version='1.0'/dfasfdsfsdgsasdgdsafe3qreghqa12314sfdsafszdfdsq431535e4qt/version='1.21'/dfasfdsfsdgsfe3qreghqa123142134sadfsadlzdfdsq431535e4qt/ve
2018-04-26 20:36:25
1992
原创 vector基础笔记
vector对象复制部分对象。vector<int> arr1{1, 2, 3, 4, 5, 6}; 1. vector<int> arr2(arr1.begin(), arr1.begin()+4); 2. vector<int> arr2; copy(arr1.begin(), arr1.begin()+4, arr2.begin()); PS:注意点复制的区间都是[),左闭右开
2018-04-26 17:34:49
252
原创 MarkovModels马尔科夫模型读书笔记
前言本来是想了解HMM模型(隐马尔科夫模型),但是HMM是建立在MarkovModels模型的基础上,这里就简单的介绍一下马尔科夫模型,其实类似翻译啦。参考UMDHMM概念介绍可观察状态(Observable states):1,2…,N (例如天气的状态,sunny,rainy,cloudy,3中状态)可观察状态序列(Observed sequence) (PS:一般都是随时间而改变,例如
2018-01-24 10:36:17
2511
原创 KNN算法---求前K个数据。
简介K Nearest Neighbor算法又叫KNN算法,K最近邻算法。K表示距离自己最近的k个数据样本。 个人觉得重点在距离如何表示,如何计算,是简单的用距离公式,还是用复杂的加权计算。最后都会输出 一个距离值。剩下的问题就可以抽象成一个求前K个数据。代码#include <vector>#include <iostream>using namespace std;void adjus
2018-01-03 16:23:31
542
原创 词频统计器--python dict
吐槽平时就比较常用的统计器老是写的很low,最近看到了一个比较优雅的写法记录一下。需求想对jieba.cut返回的分词列表进行字频统计。代码优化前def gen_counter_dict(type_list): type_dict = {} for type in type_list: if type in type_dict.keys():
2018-01-02 09:27:30
1449
原创 西刺代理爬虫多进程改进验证有效代理IP
吐槽作为一名小白,初次写的爬虫,对于性能、耗时等等完全不在意。但是之前写的验证100个proxyIp的有效性话的时间是在无法接受470秒,在被逼无奈的情况下,用多进程改进,但是途中闹了很多笑话,这里记录一下。背景模块: 1. multiprocessing.Pool (PS:就在网上查了一下用进程池的比较多。这里就介绍一下简单的用法,详细介绍请自行查文档)def func(param):
2017-12-21 14:36:13
1441
原创 爬虫小白第一篇 西刺代理
爬取西刺代理流程图背景环境:python3.6模块: urllib.request(获取html)chardet(判断html的编码)bs4.Beautiful(提取代理IP)github地址(https://github.com/tonyxinminghui/spider/blob/master/xici_spider.py) 获取html难点选择用什么模块获取html西刺代理
2017-12-19 13:24:02
10616
原创 c++函数中的值传递以及引用传递
函数参数引用and值传递最近在写函数的时候突然思考的问题。 场景: typedef boost::shared_ptr<CShortcutApproval> CShortcutApprovalPtr void mergePermission( CShortcutApprovalPtr pUserPermission, CShortcutApprovalPtr pMergedPermissio
2017-09-20 15:13:41
1241
原创 VS与boost使用的tips
VS创建的项目,用boost库必须在项目属性。 c/c++=》常规=》附加包含目录,添加boost所在路径链接器=》常规=》附加库目录,添加boost/stage/lib路径。 PS:有一点需要注意,你每创建一个工程都得设置一遍,这对于我这种初学者来说,每次都设置也是一种不小的工作量,所以接下来设置vs创建的默认配置。设置VS创建项目的默认属性。 VS2008:工具=》选项=》vc++目录
2017-09-19 09:23:38
498
转载 转C++中static_cast, dynamic_cast, const_cast用法/使用情况及区别解析
首先回顾一下C++类型转换:C++类型转换分为:隐式类型转换和显式类型转换第1部分. 隐式类型转换又称为“标准转换”,包括以下几种情况:1) 算术转换(Arithmetic conversion) : 在混合类型的算术表达式中, 最宽的数据类型成为目标转换类型。 int ival = 3;double dval = 3.14159;ival + dval;//ival被提升为double
2017-09-11 09:38:02
1203
原创 mysql-python模块安装问题
我在的环境是ubuntu14.04 在用sudo pip install Mysql-python 一下是报错信息: Downloading/unpacking MySQL-python Downloading MySQL-python-1.2.5.zip (108kB): 108kB downloaded Running setup.py (path:/tmp/pip_build
2016-12-26 14:00:02
6286
1
原创 docker在centos下卸载
具体方法没有找到 。就重新安装一下 给出centos7下的卸载docker的命令 yum list installed | grep docker yum -y remove 上述命令下的输出结果如[root@VM_116_112_centos lib]# yum list installed | grep docker docker.x86_64
2016-12-07 12:25:30
1187
原创 linux下安装Django与卸载
首先到这里下载合适安装包 https://www.djangoproject.com/download/tar xcvf Djangocd Djangopython setup.py install到此安装完毕如果不想不用当前版本如何卸载由于我们使用的是setup安装的所以卸载也很简单只需删除site-packages目录下所有有关django的目录如何查找find / -name
2016-11-29 18:38:22
4978
原创 基于Dockerfile的方式创建SSH服务镜像。
准备文件mkdir ssh_Dockerfile && cd ssh_Dockerfile 在ssh_Dockerfile文件中添加3个文件分别是:run.sh(运行脚本),Dockerfile, authorized_keys(存放公钥的文件)。 具体内容都在我的github上出于方便我还是粘一下内容 https://github.com/tonyxinminghui/ssh-serverD
2016-11-16 20:25:33
2671
原创 Docker之创建SSH服务功能的镜像(commit方法)
基于commit命令的方式//运行基于Ubuntu:14.04的镜像的容器 docker run -it --rm ubuntu:14.04 /bin/bash //修改一下ubuntu14:04的源我用的是163的源 163源的内容是这 deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
2016-11-15 21:09:21
951
原创 docker容器连接
除了暴露端口的通信方式,还可以通过容器连接来实现容器间的通信。–link 容器名:别名 //创建一个容器 docker run -d --name dbdata training/postgres //创建一个web容器,将其连接到dbdata上 docker run -d -P --link dbdata:db --name web training/postgres python app
2016-11-15 14:58:02
1734
原创 Docker数据卷详解
PS:在用docker rm $(docker ps -a -q)时,需要将正在运行的容器关闭,不然将无法执行删除容器操作。数据卷是一个可以供一个或多个容器使用的特殊目录。 可以达到以下目的: 1. 绕过“拷贝写”系统,以达到本地磁盘IO的性能,(比如运行一个容器,在容器中对数据卷修改内容,会直接改变宿主机上的数据卷中的内容,所以是本地磁盘IO的性能,而不是先在容器中写一份,最后还要将容器中的修
2016-11-14 19:53:10
16904
原创 Docker网络操作
查看docker网络接口信息命令ifconfig(命令输出详解在之前的博文中介绍过) [root@VM_116_112_centos ~]# ifconfig docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.17.0.1 netmask 255.255.0.0 broadcast
2016-11-11 15:23:07
20343
原创 每日一shell之script和scriptreplay录制与回放终端会话
录制与回放script -t 2> timing.log -a output.session //接下来就是你需要录制命令,所记录的时间在timing.log中,录制命令信息保存在output.session exit//退出录制 scriptreplay timing.log output.session//回放终端录制的会话。 PS:script命令中的-t,用于将时序数据导入stder
2016-11-09 11:13:56
524
原创 Docker之Cgroup与接口的使用(二)子系统详解
cpuset子系统为一组指定的进程分配指定的cpu和内存节点。在NUMA架构的服务器上,通常将进程与指定的cpu和内存节点绑定来达到,提升性能。(具体是怎么提升的有待学习)。 在这里只介绍主要的2个接口,其余的有时间可以进行深入了解 1. cpuset.cpus:允许进程使用的cpu列表 2. cpuset.mems:允许进行使用的内存节点列表(cpu还是理解的但是内存节点????和内存寻址有
2016-11-06 21:07:55
2375
原创 Docker Hub简介及自动化构建镜像
Docker Hub官网https://hub.docker.com,它提供与源代码托管服务的github类似,dockerhub托管的是镜像。镜像分发注册Docker Hub账号运行docker login输入用户名和密码(登录信息保存在~/.docker/config.json 中。PS:我的环境是centos7)使用push命令上传镜像,不指定镜像tag的话,会将仓库中本地的所有镜像都长
2016-11-06 16:11:19
7582
原创 github上创建dockerfile项目
登录github,添加新项目 填写项目基本信息完成后我们就在github上创建了一个项目,我们需要在本机或服务器上的源码提交到github上。 mkdir gitDockerfile //创建项目目录 git init //初始化git git clone git@github.com:tonyxinminghui/gitDock
2016-11-06 12:28:16
4819
空空如也
Linux系统 多用户读写文件
2016-07-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅