`
文章列表
欧几里德距离是指多维空间两点间的距离,这是一种用直尺测量出来的距离。如果将两个点分别标记为(p1,p2,p3....pn)和(q1,q2,q3.....qn),则欧几里德距离的计算公式为:     欧几里德距离评价算法是一个非常简单的计算相似度评价值的方法。它以经过人们一致评价的物品为坐标轴,然后将参与评价的人绘制到图上,并考查他们彼此间的距离远近。如图: 该图显示了处于“偏好空间”中用户的分布状况。Toby在Snakes轴线和Dupree轴线上所标示的数值分别是4.5和1.0.两个在“偏好空间”中的距离越近,他们的兴趣偏好就越相似。因为这张图是二维的,所以在同一时间内你只能看到两项 ...
在开发中经常会遇到需要递归查询子节点的情况,之前用的是mysql,没有具体的相对应的功能。   但在postgresql中有一个强大的with查询语句。   WITH提供了一种在更大的SELECT查询中编写子查询的方式。这个通常称为公共表表达 ...
第一步:安装phptidy插件 使用package control安装,快捷键为ctrl+alt+t,当然现在是没用的。   第二步:安装php 集成的,独立的都行   第三步:设置系统变量 把上一步安装php的目录加入到电脑系统变量PATH中,并且还要在用户变量添加 PHPRC也指向php安装的目录   第四步:设置phptidy编码 经过三步,重启sublime后应该可以使用了。如果还不行,打开sublime的console,会有相关报错信息。一 般般是因为编码问题,在phptidy的相关包里找到php_tidy.py这个文件,在头部加上 import sys r ...
前些天拿到一个表,将近有4000w数据,没有任何索引,主键。(建这表的绝对是个人才) 这是一个日志表,记录了游戏中物品的产出与消耗,原先有一个后台对这个表进行统计。。。。。(这要用超级计算机才能统计得出来吧),只能帮前人填坑了。。。。   数据太大,决定用分区来重构。 如果你发现是empty,说明你的mysql版本不够,分区至少要5.1   下面针对业务查询,决定用时间来做range分区(还有list,hash等类型),一个月一个区. 按照RANGE分区的表是通过如下一种方式进行分区的,每个分区包含那些分区表达式的值位于一个给定的连续区间内的行。这些区间要连续且不能相互重叠,使用 ...
需求:一个庞大的日志表,现每天做定时统计一天的总数,放另一个表中,方便查看,运营。   旧方案:用脚本写好程序,用linux的crontab定时执行。   本文重点,用mysql定时器定时执行存储程序。   第一步:编写存储程序(需了解基本的存储程序的语法)   create procedure inproc() begin declare done int default 0; declare a,b,c int; declare curl cursor for select ver,date_format(time,'%Y%m%d') as dt,count ...
注:如果你认为你的数据不重要,可以不用往看下。   root,它具有至高无上的权限,不是任何情况都要用root!!! 状况1:给一个菜鸟root权限。 状况2:给业务开发人员以root权限。 状况3:给负责单个库的DBA以root权限。   可能你没有遇到到这三种状况,但事故总会发出,一旦把数据弄丢,把数据库down掉,为时已晚,所以权限的设置是必须的!!!   mysql中的grant语句可以做到我们想要的! 权限 意义 ALL [PRIVILEGES] 设置除GRANT OPTION之外的所有简单权限 ALTER ...
今天发现mysql的一个奇怪的事情: 表结构:  表索引:   应该可以看到ver是varchar类型,并且有索引的。 搜索一条没有的数据:type居然是all,rows是整个表,什么情况,没有使用索引? 再搜索一条有的数据: 正常 !!   去除explain,上种没有的要1秒多,下种只要0.0,说明上种确实没有用索引!!   这是个毛线情况!我自认为对索引还是有一定功力的。翻遍手册也没找到答案。突发了一个灵感:  用单引将123扩起,果断正常了!!!   这个到底是什么原因?我没有找到官方的答案,但据我的经验猜想的是: 字符串与数字去比较,会将字符串先转为数 ...
webbench是一个普遍的压力测试工具 webbench -c 1000 -t 30 url  大量的并发,耗费服务器资源。导致打开url缓慢,甚至服务器down机。   通过access.log日志可看到: 首先,先诅咒攻击的人天天吃饱了没事干 其实:apache与nginx可以通过http_user_agent这个系统变量来做处理   apache添加rewrite规则: 不知道[NC] [F]什么意思的可以看我另一个博客   nginx在server里添加判断 if( $http_user_agent ~ "webbench(.*)" ...
注: 1、varnish服务本身,启动默认端口80;如果需要重新指定启动的端口使用 -a选项 ,如-a 0.0.0.0:80802、-T 选项指定了varnish服务本身的管理端口,正是利用这个端口完成一些不关闭varnish服务而使新配置生效。   方法:用telnet连接 输入help 使用命令
FLAGS属性mod_rewrite用”FLAGS”来建立重写条件以及其他属性。我们用中括弧将FLAGS包起来,放在条件或者是规则的末尾,用逗号将多个FLAGS分隔。以下列表是你需要熟悉的几个主要FLAGS:last|L -[L]告诉Apache服务器一系列的条件或者是规则将在它出现后结束,换句话说就是[L]不出现,mod_rewrite将会一直执行。 nocase|NC -[NC]告诉Apache服务器忽略正则中的大小写,它经常被用到{HTTP_HOST}服务器参数上,因为域名里面是不会区分大小写的。 redirect|R -[R]
  location:http核心模块 语法:location [=|~|~*|^~|@] /uri/ { ... } 默认值:no 使用字段:server 这个参数根据URI的不同需求来进行配置,可以使用字符串与正则表达式匹配,如果要使用正则表达式,你必须指定下列前缀:1、~* 不区分大小写。2、~ 区分大小写。要确定该指令匹配特定的查询,程序将首先对字符串进行匹配,字符串匹配将作为查询的开始,最确切的匹配将被使用。然后,正则表达式的匹配查询开始,匹配查询的第一个正则表达式找到后会停止搜索,如果没有找到正则表达式,将使用字符串的搜索结果。在一些操作系统,如Mac OS X和Cygwin, ...
server:http核心模块 语法:server {...} 默认值:no 使用字段:http server字段包含虚拟主机的配置。没有明确的机制来分开基于域名(请求中的主机头)和基于IP的虚拟主机。可以通过listen指令来指定必须连接到这个server块的所有地址和端口,并且在server_name指令中可以指定所有的域名。   server_name:http核心模块 语法:server_name name [... ] 默认值:server_name hostname 使用字段:server 这个指令有两个作用:·将HTTP请求的主机头与在nginx配置文件中的serv ...
upstream ixdba.net{ ip_hash; server 192.168.1.133:80; server 192.168.1.134:80 dwon; server 192.168.1.135:8009 max_fails=3 fail_timeout=20s; server 192.168.1.136:8080; } upstream是Nginx的Http Upstream模块,这个模块是通过一个简单的调度算法来实现客户端IP到后端服务 ...
gzip:用于设置开启或者关闭gzip模块,“gzip on”表示开启,实时压缩输出数据流。   gzip_min_length:设置被压缩的最小请求,单位为bytes。少于这个值大小的请求将不会被压缩,这个值由请求头中的Content-Length字段决定。默认为0, ...
 include:主模块指令,实现对配置文件所包含的文件设定,可以减少主配置文件的复杂度,类似于Apache中的include方法,0.4.4版本以后,include指令已经能够支持文件通配符*:   default_type:属于HTTP核心模块指令,这里设定默认类型为二进制流,也就是当文件类型未定义时使用这种方式,例如在没有配置php环境时,nginx是不予解析的。此时,用浏览器访问php文件就会出现下载窗口。   log_format:nginx的HttpLog模块指令,用于指定Nginx日志输出格式,acc为此日志输出格式的名称,可以在access_log指令中引用。   ...
Global site tag (gtag.js) - Google Analytics