- 论坛徽章:
- 54
|
最近正好做了查成绩的个小项目,要求按考号、姓名、验证码查询,一开始考虑用redis,但是由于要进行逻辑判断,所以现成的nginx模块都不是太好用,而我只会php,所以又绕到php。
但是测试了几个数据库,包括redis,效果都不是很理想,E1230,8G内存,82574l网卡,只能跑到5000次/秒左右,最后没办法,换成了apc和xcache自带的内存存储(忘了确切的名词了,类似于memcached)上面,虽然仅能存储k-v型的数据,但是对这个项目来说足够了,最终测试接近13000次/秒,瓶颈还在网卡跟不上,本机127.0.0.1的测试能达到10W以上,基本上达到了预期的效果。
究其原因,一方面数据库驱动会变慢一点;另一方面,数据库要处理一些额外的事情,而apc之类的东西是直接存储变量,显得更轻巧;还有一个重要的因素,apc等以模块的形式直接放在php的程序空间内,不需要在进程、socket之间切换,所以在速度上会比数据库还要好一些。
但是带来的问题是一些数据库的功能不好实现,比如排序、条件查询之类,只好自行写程序处理,好在我这个项目中这方面的要求不高,不会频繁操作,再加上10万条数据全扫描一遍也就不到1s,简单用数组的功能凑合着了。 |
评分
-
查看全部评分
|