2010-05-21 87 views
0

我正在使用SQLite创建主数据库。这个文件包含十几个表格。我希望我的组中的每个人都可以访问它(通过Python或通过SQLite命令行),并且我正在考虑简单地将该文件放在组可读的目录中并将其称为'master.db'。什么是ODBC,我该如何利用它(Linux)?

现在,流行词'ODBC'浮现在脑海。

我记得我的旧Windows时代(感谢上帝,他们不在了),当我可以“注册”和Excel电子表格到我的“数据源”;它会在任何应用程序中显示。

我可以在Linux世界中利用这一点吗?这有意义吗?

非常感谢。

+3

为什么SQLite?为什么不为MySQL或Postgresql或某些专门为多用户设计的数据库引擎? – 2010-05-21 21:02:32

+1

@ S.Lott:因为它不需要服务器进程,并且可以毫不费力地备份文件。鉴于我们的必需品,我们需要一个零配置数据库;越简单越好。 – Escualo 2010-05-21 21:54:47

+2

我不会将SQLite用于多用户数据库,因为它一次只允许一个进程写入表中。至少我会使用类似SQLAlchemy的东西来访问数据库,以便您可以轻松地切换到另一个后端。 AFAIK SQLAlchemy也支持ODBC。 – 2010-05-21 22:11:44

回答

1

如果只有少数人访问你的db,那么你应该没问题。然而,SQlite吸收了大量的并发访问 - 当我有很多并发访问时,我从sqlite切换到mysql,因为数据库一直处于锁定状态。

对于许多并发访问,您需要介于请求之间的某些内容,例如(小型)Web服务器或甚至可以接受所有请求并可以调节对sqlite数据库访问权限的python程序。使用可以以线程安全方式访问sqlite的SQLAlchemy或SQLObject之类的ORM。

至于在linux上使用odbc使sqlite可以作为数据源访问linux用户,而ODBC肯定可以在linux上运行,并且存在sqlite odbc驱动程序(http://www.ch-werner.de/sqliteodbc/)我不认为你可以'注册'你的sqlite通过odbc进入数据源的中央列表 - 这是纯粹的Windows ...

+0

请定义“批次”的并发访问。由于SQLite锁定整个数据库进行写入;一些作家可能不会互相干扰太多。但有多少人成了你的问题? – 2010-05-22 11:05:28

+0

那时我正在使用线程来查询web服务并将结果存储到sqlite数据库中。当我有超过10个关键字排队时(这很奇怪,methinks,因为我没有更改线程的nr,只是要查找的关键字的数量),我有4个线程正在运行并遇到“数据库被锁定”。我发现一篇类似于http://stackoverflow.com/questions/524797/python-sqlite-and-threading的文章讨论了这一点,并建议切换到mysql。我做到了,没有更多的问题。 – 2010-05-25 21:37:18

0

首先,这里是关于ODBC的维基百科文章。这是一个用于与数据库交互的标准软件API。但是,我怀疑你需要使用它,如果你想一起使用SQLite & Python。 Python有一个名为sqlite3的内置模块,它应该可以帮助你。祝你好运。

相关问题