www.nginx.cnsitemap

存档

文章标签 ‘mongodb’

mongodb非skip高效php分页类

2014年1月19日 1 条评论

mongodb分页skip+limit分页要先查出所有结果再去跳过,这样如果查询页面越往后效率越低。

如果能够通过查询条件查出每页结果的最后一条记录,在用最后一条记录作为查询条件去查下一页,这样每次都查询页面size条记录,效率子让不会差。

具体代码如下:包含mongodb.class.php, page.class.php, test.php
mongodb.class.php mongodb 操作类

page.class.php mongodb分页逻辑类

test.php 测试代码

分类: php 标签: , , ,

nginx、php-fpm安装mongodb及驱动扩展

2013年2月1日 3 条评论

1.安装mongodb

linux下安装mongodb很简单,执行如下命令完成安装

curl http://downloads.mongodb.org/linux/mongodb-linux-i686-2.2.2.tgz > mongo.tgz
tar -zxvf mongo.tgz
mkdir /db
cp -R -n mongodb-linux-i686-2.2.2/ /db/mongodb
cd /db/mongodb/

 
阅读全文...

分类: nginx 标签: ,

mongodb批量导入数据

2012年9月2日 1 条评论

mongodb 命令行可以把sql文件批量导入数据,首先把sql文件加工称如下格式

zip.sql源文件
INSERT INTO POST(id,PostNumber,Province,City,District,Address,jd) VALUES ('1161','010010','内蒙古自治区','呼和浩特市','新城区','光华街(十四中家属楼)','内蒙古自治区呼和浩特市新城区');
INSERT INTO POST(id,PostNumber,Province,City,District,Address,jd) VALUES ('1162','010010','内蒙古自治区','呼和浩特市','新城区','兴安南路','内蒙古自治区呼和浩特市新城区');

借助awk和sed
awk -f "','" '{print "x27number:x27"$2"x27,x27provincex27:x27"$3"x27,x27cityx27:x27"$4"x27,x27discx27:x27"$5"x27,x27addrx27:x27"$6"x27,x27jdx27:x27"$7} zip.sql >step1.txt
sed -e 's/);/})/g' setp1.txt > mon

加工后的mon文件
db.area.insert({'number':'010010','province':'内蒙古自治区','city':'呼和浩特市','disc':'新城区','addr':'光华街(十四中家属楼)','jd':'内蒙古自治区呼和浩特市新城区'})
db.area.insert({'number':'010010','province':'内蒙古自治区','city':'呼和浩特市','disc':'新城区','addr':'兴安南路','jd':'内蒙古自治区呼和浩特市新城区'})

cat mon | /usr/local/mongodb/bin/mongo localhost/zip --shell

其中zip为数据库名 area为集合名

mongodb建立索引

/usr/local/mongodb/bin/mongo

use zip

db.area.ensureIndex({"number":1})

分类: 小技巧 标签: