以及Python NoSQL数据库

litedb的Python项目详细描述


莱特数据库

。。图片::https://travis-ci.org/JonathanVusich/litedb.svg?branch=master&kill_cache=1 :目标:https://travis-ci.org/JonathanVusich/litedb :alt:生成状态

。。图片::https://coveralls.io/repos/github/JonathanVusich/litedb/badge.svg?branch=master :目标:https://coveralls.io/github/JonathanVusich/litedb?branch=master :alt:覆盖范围

。。图片::https://readthedocs.org/projects/litedb/badge/?version=latest :目标:https://litedb.readthedocs.io/en/latest/?badge=latest :alt:文档状态

liteDB是一个Python NoSQL数据库,创建它是为了简化数据库。它使用简洁的api设计,并针对特定的用例提供了两种不同的实现。在

我应该什么时候使用liteDB?在

liteDB是小型项目的完美工具,在这些项目中,性能比易用性和干净的Pythonic api要少。 当您不想经历设置SQL数据库的麻烦,但又不想依赖JSON数据存储时,liteDB是解决方案。它的工作原理是使用pickle序列化任意Python类,并允许用户对存储的对象执行基于索引的搜索。它也不是使用特定于平台的api编写的,因此它完全是跨平台的。在

未来规划功能

  • 使用gzip压缩数据库
  • 加密
  • 更好的医生
  • 有用的例子

当前性能/优化问题

注意:本节主要针对需要最高性能水平的开发人员。对于大多数任务,LiteDB的性能非常好。在

  • autoDB的主要性能代价是Python对象的序列化和反序列化。liteDB使用pickle库来完成此任务,因为它能够序列化任意Python类型,这就不需要用户定义用于序列化的自定义类。pickle有几个缺点,包括性能慢和未加密时的安全问题。这个问题的一个明显的解决方案是使用JSON进行对象序列化。然而,序列化所有对象只需遵循预定义的格式。这是一个相当大的缺点,因为它将涉及到用户必须为liteDB构建他们的系统,而不仅仅是将其作为即插即用的解决方案。序列化引擎可能必须用JSON实现,并在完全解决这个设计决策之前进行广泛的测试。在

  • 当数据库中有数百万个唯一对象时,索引映射可能会占用大量内存。这是由于自动索引任何合适的对象属性。也许用户应该能够选择所需的索引以节省内存。此外,使用列表而不是集合可以更有效地实现索引。在

我能为liteDB做贡献吗?在

是的,你绝对可以!任何和所有的帮助与未来的功能和上述问题是非常欢迎的。只需打开存储库,开始实验。如果你想出了一些你认为很好的东西,一定要通过公开的公关来分享它!在

发展现状

这个项目已经退出了实现阶段,已经升级到beta版本。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在没有代码气味的情况下编写遵循Liskov替代和其他可靠原则的不可变映射?   java最新jre上的压缩字符串对旧编译代码有好处吗?   java是否可以在javascript中取消PrimeFaces menuitem onclick函数   mysql从SQL数据库中访问java中xml名称空间标记的值   从java程序打开excel文件   java在方法中使用“var”是否会使执行(并发)线程不安全?   java使搜索视图以一种关于AndroidManifest的通用方式可用。xml   java对如何准确使用正则表达式感到困惑?   mule如何访问java文件中的记录变量   java在从2D数组引发异常后继续   枚举当前设置为的java值   java当listview只有几个项目时,如何使alert对话框显示listview的所有项目?   java getTableRow()返回大于项大小的索引   c用java传输二进制文件(数据)   java更改多选列表项复选框颜色