我研究了将WordPress迁移到MongoDB或其他NoSQL数据库以使其真正可扩展的可能性。要做到这一点,有一个很好的方法(不幸的是不是很短)。
首先,我在PHP中编写了一个小脚本,该脚本将MySQL表迁移到Mongo集合,进行一些聚合,同时保留原始的关系依赖关系:
https://github.com/virtimus/mysql2mongo
我现在正在做的下一步是让MongoDB理解一些与SQL“相近”的东西-我将其命名为“nSQL”-它是基于json的SQL方言,在层次集合上运行
https://github.com/virtimus/nsqlserver
这是一项正在进行的工作-尚未提交任何内容-但是我已经离线了w protype版本,它可以处理以下表单的简单nSQL查询:
db.runCommand(
{nsQL:
{
sel:[\'id\',\'emailUse\',\'emailType\',\'emailSubject\'], // properties/colums to return
flt:{emailUse:0,emailType:\'test\'}, // filter (where phrase equivalent)
ctb:\'wp_eshop_emails\' // table equivalent (can be agregated in collection as path)
},
cid:ci, //connection id
sid:si //session id
})
它可以在MySQL、MongoDB或几乎任何其他关系/非关系后端上工作。它编译了两个项目:-一个MongoDB fork(通过一些“nSQL”命令稍微扩展了MongoDB版本)-一个SQLRelay项目的fork(关系DB代理处理许多SQL后端)
好的,所以上述组件将是工作的主要部分。要使其功能全面(处理聚合、排序、子文档过滤器、插入/更新/删除,可能还有连接等),需要进行大量的开发。总体而言,最终效果似乎非常理想,不仅仅是对WP。想象一下,例如,使用几个简单的“INSERT FROM INTO”命令将SQL迁移到NoSQL。。。
剩下的工作将是通过某种SQL2NSQL转换器(即上面的PDO插件)将其与WordPress连接起来
有人感兴趣吗?帮助分析/开发?金融投资?