wordpress支撑百万文章解决方案

无论是从功能方面还是开发方面,wordpress用起来都很便利,但便利的背后是以牺牲明能为代价的。最近想着优化一下wordpress,看看有没有什么方案能够将wordpress支撑起百万的数据呢。

支撑百万数据并不是存入一百万文章就可以了,实际上百万文章对mysql来说毫无压力,别说百万了,上亿也没什么关系,有关系的是查询。很不幸,如果主题写的不好,百万文章的wordpress查询就是个灾难。

从首页开始看

一般来说,达到百万文章级别的站点,首页应该是一个展示很多分类文章的页面。但是由于wp在初始化的时候就会根据url中的查询去数据库查询一些文章,首页是根据时间倒序查询,因此当不需要最新文章的时候,可以利用钩子去掉这部分查询。当需要最新文章的时候,也需要优化这个查询,默认的查询是带有SQL_CALC_FOUND_ROWS,这个简直是性能杀手!
当需要从分类取出一些数据的时候,使用WP_Query构造出的查询也会用到filesort,因此可以选择构建一张表,作为中间查询。

(更多…)

Execl宏教程:从hello world开始入门

Excel宏使用的是vba,基本上就是运行在Excel里面的vb。所以学习vba和学习一门编程语言没有什么区别。所以我们最开始需要学的的就是一些基础语句。为了不让学习显得太枯燥,我们从一个hello world开始。

首先需要打开Microsoft Excel,找到开发工具->宏,输入一个宏名称,点击创建

创建了新的宏之后,就会出现一个编辑器界面

Sub test()
End Sub

使用一个弹窗弹出hello world

Sub test()
MsgBox("hello world")
End Sub

到这里,一个简单的宏就创建完成了,虽然它现在什么也不能做,但是别着急,后面宏会为你做很多很多的事情,能让你的工作效率提升非常多倍!

docker 制作自己的 php-fpm镜像

php-fpm的镜像官方已经有了,但是直接拿过来用或许不行,不同的项目所需要的扩展不一定一样。所以这里我们以官方的php-fpm 5.6版本为基础镜像,在这个镜像上制作我们自己的镜像。开发环境安装尽可能多的扩展,线上环境则安装所需要的扩展。

为了构建我们的镜像,首先需要一个名为Dockerfile的文件,docker会根据这个Dockerfile来构建镜像。

首先使用FROM指令,表示当前构建的镜像的基础镜像

FROM php:5.6-fpm

docker会从他自己的镜像库中拉取php-fpm5.6的镜像。 (更多…)

后端开发需要安装的chrome插件

每一次更换环境都要重新安装一遍chrome的各种插件,这次就记录下来,供下次需要,也供正在阅读本文的你作为参考,说不定能够找到一些比较好的插件呢。

json handle

在处理接口的时候,json-handle格式化输出的json字符串。

AdBlock

比较厌烦广告,adblock是一个比较好的屏蔽广告的插件

HostSwitch

使用代理的方式来达到切换host目的,HostSwitch是一个不错的选择,不直接修改hosts文件。在调试网站或者接口是一个非常棒的选择

Proxy SwitchyOmega

一个非常棒的代理插件,能够根据规则选择是否使用代理

Eye Dropper

一个网页取色器的插件,本来想搜索color picker,然而不知道为什么搜索到的不好用。

未完…

使用 ssh config给你的远程主机创建别名

与windows不一样,通常在linux下(mac也一样)一般使用终端来连接远程主机而不是使用一些比如putty或者是xshell。

ssh -p port name@host

这样未免有些麻烦,实际上通过配置ssh的config文件能够使用别名,简化连接,用户的配置文件在~/.ssh/config, 没有的话就创建一个。配置示例如下

Host 别名
    HostName 主机域名或者ip
    User 用户名
    Port 指定端口号

(更多…)

使用apidoc为你的项目编写api文档

在使用apidoc之前,我一直使用wiki来写文档,后来发现这种方式更新起来比较痛苦,时间一长甚至就忘记了更新了。一直在寻找能够使用注释直接生成文档的程序。某一天同事推荐了apidoc,发现这正是我想要的工具。

apidoc原理

apidoc的原理是扫描你的代码文件,提取出注释部分,根据一些规则生成相应的文档。默认的模板久很美观,十分适合作为api文档的生成器。目前apidoc支持的注释基本涵盖了大部分语言的风格了,c,java,php,js,python,perl,lua, Erlang…

安装

需要使用npm安装,如果没有安装npm,请先去https://www.npmjs.com/下载npm并且安装。安装之后使用如下命令安装apidoc

npm install apidoc -g

开始API文档

通常我们的api的是通过一个方法的调用,在mvc架构的c层。如果一个api是 /foo/bar ,那么可以在相关的方法调用中这样写注释

 

/**
 * @api {GET} /foo/bar 一个测试的接口
 * @apiName  foobar
 * @apiVersion 0.1.0
 * @apiGroup foo
 * @apiDescription 这是一个测试的接口,会输出一个hello world
 */

(更多…)

从融资(融券),融资买入(融券卖出)量,资融(融券)余额看多空博弈

股票市场,除了使用自有资金买卖之外,还可以使用融资和融券的方式去买卖股票。

融资

融资,表示用户看好这只股票,认为会上涨,不惜借钱买入股票,等待上涨之后卖出之后,偿还之前的借款。

举个例子,比如股票10元1股,借10000元可以买入1000股,那么当股票按照期望上涨到11元之后,再卖出就能卖到11000,偿还10000之后盈利1000。

融券

融券,表示用户不看好这只股票,认为会下跌,不惜借股票卖出换钱,等股票下跌之后再买入相同的股票偿还。

举个例子,比如股票10元1股,借1000股之后卖出,当股票按照预期下跌到9元的时候,再买入1000股,只需要花9000,偿还1000股之后,手中盈利1000元。 (更多…)

matplotlib使用:画柱状图

matplotlib画柱状图十分简单,首先需要导入matplotlib中的pyplot,这个就是能够画图的类啦

import matplotlib.pyplot as plt

画柱状图十分简单,使用bar方法,比如画一个各个班级的人数吧,先准备一些数据,有两组数据,students为人数,这里放到y坐标系中,变量x就放在x坐标系中

students = [42,51,30,49]
x = [1,2,3,4]

好了,现在我们可以直接画出来,调用bar方法,最后再调用show就能画图啦,代码如下

plt.bar(x=x, height=students)
plt.show()

完整代码如下

#coding:utf-8
import matplotlib.pyplot as plt

students = [42,51,30,49]
x = [1,2,3,4]

plt.bar(x=x, height=students)
plt.show()

效果是这样的

(更多…)

SQLAlchemy介绍

SQLAlchemy是python下十分流行的orm(对象关系映射)框架。官方的介绍是这样的:

SQLAlchemy将数据库视为关系代数引擎,而不仅仅是表的集合。行不仅可以从表中选择,还可以选择连接其他的选择语句; 这些单元中的任一个可以组成更大的结构。SQLAlchemy的核心表达语言正是基于这个概念。

SQLAlchemy以其对象关系映射器(ORM)而闻名,它提供一个数据映射器模式的可选组件,其中可以通过多种方式将类映射到数据库,实际上对象模型和数据库模式从一开始就可以完整分离。

SQLAlchemy的对这些问题的总体思路来源于其它优秀的 SQL/ORM 工具,植根于所谓的完全不同complimentarity-导向的方法; 而不是隐藏SQL并将对象的关系细节隐藏在自动化的墙壁之后,所有进程都被完全暴露在一系列可组合的透明工具中。该库负责自动执行冗余任务,而开发人员仍然可以控制数据库的组织方式以及SQL的构建方式。

SQLAlchemy的主要目标是改变您对数据库和SQL的思考方式!