我对将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分支(通过某些“ nSQL”命令略微扩展了MongoDB版本)-SQLRelay项目的分支(关系数据库代理处理)许多SQL后端)
好的-以上组件将是工作的主要部分。有很多开发使其可以发挥全部功能(聚合处理,排序,子文档过滤器,插入/更新/删除,也许还有连接等)。最终效果似乎非常普遍-不仅对于WP。想象一下使用几个简单的“ INSERT FROM INTO”命令将SQL迁移到NoSQL的情况。
剩下的工作将是通过某种SQL2NSQL转换器(即上面的PDO插件)将其与WordPress连接起来。
有感兴趣的人吗?帮助分析/开发?金融投资?