- 博客(20)
- 收藏
- 关注
转载 由浅入深探究mysql索引结构原理、性能分析与优化
摘要:第一部分:基础知识第二部分:MYISAM和INNODB索引结构1、 简单介绍B-tree B+ tree树2、 MyisAM索引结构3、 Annode索引结构4、 MyisAM索引与InnoDB索引相比较第三部分:MYSQL优化1、表数据类型选择2、sql语句优化(1) 最左前缀原则
2012-10-24 16:28:34 615
原创 Scrapy实践经验
本文记录了使用Scrapy的一些实践经验(common practices)。 这包含了很多使用不会包含在其他特定章节的的内容。在脚本中运行Scrapy除了常用的 scrapy crawl 来启动Scrapy,您也可以使用 API 在脚本中启动Scrapy。需要注意的是,Scrapy是在Twisted异步网络库上构建的, 因此其必须在Twisted reactor里运行。看下面的例子:...
2019-02-22 16:14:05 570
转载 常见爬虫/BOT 对抗技术简介(二)
上一篇文章分别从网络协议,Robots文件,JS渲染,行为分析等多方面讲了些“反爬虫”,“反-反爬虫”技术。点击查看:《常见爬虫/BOT 对抗技术简介(一)》 本文将主要介绍各种IP地址的获取及接入方式 何谓VPN?2.2 VPNVPN是一个大家耳熟能详的技术。VPN最常用于连接办公网,以及规避流量审计。在WIKI中, VPN的定义如下:虚拟私人网络(英语:Virtu...
2019-02-22 10:55:33 909
转载 常见爬虫/BOT对抗技术介绍(一)
爬虫,是大家获取互联网公开数据的有效手段。爬虫、反爬虫技术、反-反爬虫技术随着互联网的不断发展,也在不断发展更新, 本文简要介绍现代的爬虫/BOT对抗技术,如有疏漏,多谢指正! 一、反爬虫/BOT技术1.1 Robots.txtRobots.txt是一个古老的爬虫协议文件,他的位置位于域名根目录下。譬如http://example.com/robots.txt 。 严格来讲Robots...
2019-02-22 10:51:26 3570
原创 2808proxy使用指南
文章目录前言新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入前言最近准备用python爬取豆瓣的数据做一些有...
2018-12-21 20:51:47 3935
原创 IO密集型和CPU密集型任务的线程配置
最近在学习Java线程池的时候,创建线程池的api中需要制定线程数。这个不能胡乱制定否则对服务的性能影响很大,需要根据任务的性质来决定根据任务所需要的cpu和io资源的量可以分为CPU密集型任务: 主要是执行计算任务,响应时间很快,cpu一直在运行,这种任务cpu的利用率很高IO密集型任务:主要是进行IO操作,执行IO操作的时间较长,这是cpu出于空闲状态,导致cpu的利用率不高为了合理最大限度...
2018-06-03 13:47:29 8162
原创 http协议
HTTP协议--超文本传输协议一、概念介绍1、定义HTTP 协议(HyperText Transfer Protocol,超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,是用于从WWW 服务器传输超文本到本地浏览器的传送协议。 HTTP 协议通常承载于TCP 协议之上,有时也承载于TLS 或SSL 协议层之上,这个时候,就成了我
2014-03-24 21:44:06 1097
原创 UDP中connect的作用
1、UDP错误的捕捉 常规下,UDP中发送和接收数据用sendto和recvfrom,在这两个函数中只能发送或接收端的ip、port.因为UDP是面向无连接的。UDP中存在一个问题,如果sendto或者recvfrom出错,内核不会错误信息报告给应用进程。例如服务端没有的打开的时候,客户端调用recvfrom,它不会收到任何错误,客户端永久阻塞。通过tcpdump观察分组发现ICMP中
2014-03-24 21:42:43 1673
原创 mysql中文乱码解决方案
mySQL会出现中文乱码的原因不外乎下列几点:1.server本身设定问题,例如还停留在latin12.table的语系设定问题(包含character与collation)3.客户端程式(例如php)的连线语系设定问题强烈建议使用utf8!!!!utf8可以兼容世界上所有字符!!!!一、避免创建数据库及表出现中文乱码和查看编码方法1、创建数据库的时候:CREATE D
2014-03-24 21:40:30 432
原创 mysql备份问题
mysql使用普通用户备份出现:[root@xok.la]# mysqldump -u dbuser -ppass db > db.sqlmysqldump: Got error: 1044: Access denied for user 'dbuser'@'localhost' to database 'db' when usingLOCK TABLES解决一:
2014-03-24 21:37:41 547
原创 进程间通信-管道pipe
pipe是进程间通信的一种方式,它有两个限制条件1、只能在具有公共祖先的进程之间使用,通常用于父子进程之间通信2、它半双工的,即一个进程不能同时读和写尽管如此,pipe仍然是最常用的进程间通信方式创建管道用pipe函数int pipe(int filedes[2])filedes[0] 是管道的读描述符filedes[1]是管道的
2014-03-24 21:33:22 629
原创 进程间通信-消息队列
消息队列是进程间通信方式的一种,两外两种是信号量和共享存储。这三种方式都非常的相似,在内核中有一个IPC结构,只要进程获得了这个IPC结构的编号,便能向其中读写数据了。如典型的 client-server模型,他们要向同一个IPC结构读写,那么这个IPC结构的编号就应该是被他们两个所共同知道的。其实,IPC只在内核中,用ls等命令看不到他,在外面,只能是用一个KEY与之关联。取得IPC编号的方法有
2014-03-24 21:30:52 610
原创 条件锁的使用
#include#include#include#include#include#includeusing namespace std;// 初始化互斥量pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;// 初始化条件变量pthread_cond_t cond = PTHREAD_COND_INITIALIZER;//
2014-03-24 21:26:24 727
原创 value_type和size_type,size_t
size_type和value_type只存在于STL中,他们并不是什么新的类型,只是普通类型的typedef而已size_type可以是一个无符号整形,它的大小与平台有关。在STL中使用size_type比使用unsinged兼容性更佳。在string中,size_type常用来表示字符串的长度,在vector中,常用来表示元素的个数.value_type
2014-03-24 21:24:13 964
转载 TCP协议疑难杂症全景解析
说明:1).本文以TCP的发展历程解析容易引起混淆,误会的方方面面2).本文不会贴大量的源码,大多数是以文字形式描述,我相信文字看起来是要比代码更轻松的3).针对对象:对TCP已经有了全面了解的人。因为本文不会解析TCP头里面的每一个字段或者3次握手的细节,也不会解释慢启动和快速重传的定义4).除了《TCP/IP详解》(卷一,卷二)以及《Unix网络编程》以及Linux源代码之外,
2013-12-29 16:34:40 625
原创 linux特殊符号大全
在shell中常用的特殊符号罗列如下:# ; ;; . , / \ 'string'| ! $ ${} $? $$ $* "string"* ** ? : ^ $# $@ `command`{} [] [[]] () (()) ||
2013-12-14 13:49:40 577
转载 浏览器内部工作原理
浏览器可以被认为是使用最广泛的软件,本文将介绍浏览器的工 作原理,我们将看到,从你在地址栏输入google.com到你看到google主页过程中都发生了什么。将讨论的浏览器今天,有五种主流浏览器——IE、Firefox、Safari、Chrome及Opera。本文将基于一些开源浏览器的例子——Firefox、 Chrome及Safari,Safari是部分开源的。根据W3C(Wor
2013-02-22 14:25:41 567
转载 c++ STL 算法列表
1. 查找算法 (13) 为判断容器中是否包含某一个值提供adjacent_find()binary_search()count()count_if()equal_range()find()find_end()find_first_of()find_if()lower_bound()upper_bound()search()search_n(
2013-02-22 14:21:14 646
转载 为你解析Linux虚存管理
Linux操作系统是一种多用户多任务、支持多种平台的开源的类Unix操作系统,其支持多种平台,在服务端可与其它商用类Unix系统媲美,在客户端则向Windows系列发出了强有力的挑战。自Linux诞生以来,发展迅猛,已经受到了全球开源社区和许多商业科技巨头的大力支持以及政府、教育机构、科研单位的重视。本文介绍了Linux虚拟存储管理技术的特点,并结合操作系统原理和Linux内核源码,通过分析虚拟存
2013-02-22 14:18:15 849
转载 深入理解C++类型转换(Type Casting)
类型转换就是将给定类型的表达式转换为另一种类型。C++中的转型可分为两种:隐式类型转换和显式类型转换。下面将一一介绍。一,隐式类型转换隐式类型转换是C中的遗留物,在C++中并不推荐使用(C++有专门的转型操作符,见下文的显式转型)。将某种类型的对象拷贝到另一种不同类型的对象中时就会发生隐式转型。比如异型赋值,返回值(函数声明的返回值与代码块实际返回值不同的情况下),按值传递异型参数
2012-11-06 00:48:23 785
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人