您的位置:首页 > 数据库 > SQL

openfire 登陆 mysql转mongo性能测试及性能提升

2014-05-19 21:21 429 查看
登陆要修改的表:
OfPresence、OfRoster、OfRosterGroups、OfUserFlag、OfUserProp



Mysql迁移到mongo数据库功能已完成,为了进一步提高性能,考虑以下几个方面:
(1) 确认index是否添加
在多主键时使用如下方案,只对id做索引即可
@PrePersist
private
void
changeMutiId()
{
this.id =username.concat(MongoConnectionProvider.mutiSplite).concat(remarkeduser);
}
其中少于3个字符串进行连接时使用String.concat ()(参考http://www.blogjava.net/javagrass/archive/2010/01/24/310650.html)
(2) 使用morphia @id标记id作为主键,替代mysql主键唯一功能

其他mongo常见问题处理见如下链接:
http://blog.chinaunix.net/uid-25046147-id-3307269.html
/article/6924475.html
http://www.csdn.net/article/2012-11-15/2811920-mongodb-quan-gong-lue
mongo监控详解见:
/article/5046151.html

——————————————————————————分割线————————————————————————————————————————
性能测试结果:(Intel(R) Xeon(R) CPU 2.13GHz ,内存:4139668 kB,64位)

数据库类型方式总发送请求数失败数请求完成时长成功数总实时长每秒完成数备注
mysql1w线程,每个线程发送一个请求10000304384459970204408556722.73945421
mysql1w线程,每个线程发送一个请求1000024772699998245464329820.94835407
mysql1w线程,每个线程发送一个请求10000047474210000243542133521.0640727
mysql1w线程,每个线程发送一个请求1000019984701278002246437323917.02093264
20.4432034平均值
Mongo1w线程,每个线程发送一个请求1000003823410000197587486261.5473139
Mongo1w线程,每个线程发送一个请求1000003608310000189222119277.1388188
Mongo1w线程,每个线程发送一个请求1000003563310000188300176280.6387338
Mongo1w线程,每个线程发送一个请求1000003609110000186487906277.0773877
Mongo1.5W线程,每个线程发送一个请求1500005269915000408320029284.6353821
Mongo1.5W线程,每个线程发送一个请求1500005576215000434557476269.0003945
Mongo2W线程,每个线程发送一个请求2000007227220000748674330276.7323445
Mongo2W线程,每个线程发送一个请求2000007154120000752411949279.5599726
Mongo3W线程,每个线程发送一个请求300000105877300001647957984283.3476581
Mongo3.8W线程,每个线程发送一个请求380000133790380002649965141284.0272068
Mongo3.8W线程,每个线程发送一个请求380000131343380002589511742289.3188065
Mongo3.85W线程,每个线程发送一个请求385000135422385002722163808284.2964954
278.9433762平均值
结论:登陆时,mongo比mysql快一个数量级

Mongo 并发线程峰值数由于数据准备不齐全导致还没有测到当前是38500,mysql基本稳定在10000
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: