繁体   English   中英

Python 2.5上的Sqlite3太慢

[英]Sqlite3 on Python 2.5 is too slow

当我使用Python 2.5访问Sqlite数据库时,它花费的时间太长,但是如果我通过其他方式(包括Python 3.2)访问同一数据库,则它的时间要短得多。 这是怎么回事? (我需要Python 2.5,并且无法切换到Python 3.2)

不用说,如果您使用的是旧版程序,则不会获得性能改进,错误修复以及以后添加的功能。 Python 2.5在许多方面比2.7(或3.2)要慢,错误且功能不如2.7,并且在大多数情况下,唯一的解决方案是“停止使用2.5”,除非您想跟踪变更日志和反向移植的特定改进。它到2.5代码库。

但是在这种情况下,它要容易sqlite3 ,因为sqlite3是独立于python开发的(实际上,在2.5之前,它甚至没有内置)都像pysqlite 以下是一些版本历史记录(如2.62.7的新增功能文档中所示):

  • Python 2.5:pysqlite 2.3.2
  • Python 2.6:pysqlite 2.4.1
  • Python 2.7:pysqlite 2.6.0

最新版本是2.6.3。 您可以通过任何一种常用方法( pipeasy_install ,从网站下载并按照说明进行操作,从网站下载Windows二进制安装程序并运行它们等)进行安装。

实际上,如果您要使用setuptools / distribute构建软件包, setuptools可能只需要输入>= 2.6.0 ,而pip install mypackage将自动获得2.5(和2.6用户)的新版本。

您的问题也可能与基础C sqlite3库有关,而不是pysqlite包装器。 如果安装sqlite3 ,然后从源代码构建pysqlite ,也可以解决该问题。

如果您不确定拥有哪个版本,则可以在运行时进行检查,因为该模块具有易于阅读的version属性(以及sys一个version_info元组,因此您可以检查version_info >= (2, 6) ),以及基础C库的sqlite_versionsqlite_version_info

除了abarnert的出色答案之外,请查看您的提交频率。 在SQLite中,提交速度很慢,如果推迟,通常可以提高性能。 我自己在其他一些测试中遇到了这个问题,减少提交次数的性能差异非常大。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM