schemaless mysql_用MySQL数据库来支持Schemaless的数据库存储方案

在PyCon上有童鞋提供了一个类似概念的分享,不过不大适合一般类型的互联网项目,感觉有点过于另类。不过我实现这个方案是在看到PyCon的分享之前。算是同样的诉求不同的实现方式吧。且我这里只是实现了一个数据访问的组件而不是Server。

首先本文的方法来自FriendFeed分享的如何使用MySQL数据库的分享。简而言之就是把Python对象直接dumps后zip压缩存储在MySQL一个字段里。这样不就Schemaless了么?存什么数据类型,类什么结构,MySQL都不需要知道,加个属性什么的都不需要修改数据库表结构,对于业务快速变更、快速增长的互联网业务来说再合适不过了。访问对象直接通过主键查询,快速直接。but,查询怎么办?有的童鞋可能会问。OK,查询这事得分两说,如果是简单的检索,可以通过建索引表的方式来解决,或者呢用外部的索引,比如lucent,还能全文检索哦。现在而今眼目下我实现了索引表索引的方式,因为外部的索引方式比较千奇百怪,所以如果需要可以根据具体情况自己来写一个,反正实现相应的几个方法就行。

直接上一个例子来说明。假设要实现一个blog,需要存blog的信息,先定义一个blog的模型类(需要import什么大家自动脑补)

Copy to Clipboard

aa627a6b0d9a89f22bcea6370439fcec.gif引用的内容:[www.veryhuo.com]

class Blog(DynamicBase):

title=Colum

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值