Python论坛  - 讨论区

标题:[python-chinese] 可供Python使用的嵌入式数据库

2007年03月05日 星期一 16:42

gashero harry.python在gmail.com
星期一 三月 5 16:42:06 HKT 2007

SQLite的多线程支持让我彻底失望了。所以寻求另外一种小巧的嵌入式数据库。当然我指可以嵌入程序使用,而不是嵌入式系统。听说MySQL好像也支持嵌入式的运行方式,只是不知道有没有Python
Wrapper。
多谢。

-- 
从前有一只很冷的毛毛虫,他想获得一点温暖。而获得温暖的机会只有从树上掉下来,落进别人的领口。
片刻的温暖,之后便失去生命。而很多同类却连这片刻的温暖都没有得到就..
我会得到温暖么?小心翼翼的尝试,却还是会受到伤害。
我愿为那一刻的温暖去拼,可是谁愿意接受?

欢迎访问偶的博客:
http://blog.csdn.net/gashero

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月05日 星期一 16:53

刘鑫 march.liu在gmail.com
星期一 三月 5 16:53:35 HKT 2007

ÊÔÊÔǶÈë°æµÄFirebird

ÔÚ07-3-5£¬gashero <harry.python在gmail.com> дµÀ£º
>
>
> SQLiteµÄ¶àÏß³ÌÖ§³ÖÈÃÎÒ³¹µ×ʧÍûÁË¡£ËùÒÔÑ°ÇóÁíÍâÒ»ÖÖСÇɵÄǶÈëʽÊý¾Ý¿â¡£µ±È»ÎÒÖ¸¿ÉÒÔǶÈë³ÌÐòʹÓ㬶ø²»ÊÇǶÈëʽϵͳ¡£Ìý˵MySQLºÃÏñÒ²Ö§³ÖǶÈëʽµÄÔËÐз½Ê½£¬Ö»ÊDz»ÖªµÀÓÐûÓÐPython
> Wrapper¡£
> ¶àл¡£
>
> --
> ´ÓÇ°ÓÐÒ»Ö»ºÜÀäµÄëë³æ£¬ËûÏë»ñµÃÒ»µãÎÂů¡£¶ø»ñµÃÎÂůµÄ»ú»áÖ»ÓдÓÊ÷ÉϵôÏÂÀ´£¬Âä½ø±ðÈ˵ÄÁì¿Ú¡£
> Ƭ¿ÌµÄÎÂů£¬Ö®ºó±ãʧȥÉúÃü¡£¶øºÜ¶àͬÀàÈ´Á¬ÕâƬ¿ÌµÄÎÂů¶¼Ã»Óеõ½¾Í..
> ÎÒ»áµÃµ½ÎÂůô£¿Ð¡ÐÄÒíÒíµÄ³¢ÊÔ£¬È´»¹ÊÇ»áÊܵ½É˺¦¡£
> ÎÒԸΪÄÇÒ»¿ÌµÄÎÂůȥƴ£¬¿ÉÊÇË­Ô¸Òâ½ÓÊÜ?
>
> »¶Ó­·ÃÎÊżµÄ²©¿Í£º
> http://blog.csdn.net/gashero
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese




-- 
Blog°á¼ÒÁË

ÁõöÎ
March.Liu
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070305/dd31b089/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月05日 星期一 18:38

gashero harry.python在gmail.com
星期一 三月 5 18:38:33 HKT 2007

FireBird的下载,分为pdb和没有pdb的版本,有什么不同?另外,使用嵌入版本可以直接使用文件名做连接么?还有使用哪个Python Wrapper?

-- 
从前有一只很冷的毛毛虫,他想获得一点温暖。而获得温暖的机会只有从树上掉下来,落进别人的领口。
片刻的温暖,之后便失去生命。而很多同类却连这片刻的温暖都没有得到就..
我会得到温暖么?小心翼翼的尝试,却还是会受到伤害。
我愿为那一刻的温暖去拼,可是谁愿意接受?

欢迎访问偶的博客:
http://blog.csdn.net/gashero

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月06日 星期二 09:17

大熊 bearsprite在gmail.com
星期二 三月 6 09:17:24 HKT 2007

kinterbasdb

1、将下载的KInterbasDB 驱动解压,运行其.exe安装程序,默认会安装到Python
的"lib\site-packages\kinterbasdb"目录下。

2、在上面提到的"kinterbasdb"目录下创建一个目录"embedded",然后解压下载来的Embedded FireBird,复制"
fbembed.dll"、"firebird.msg"、"ib_util.dll"3个文件到"embedded"目录下——如果需要用到ASCII
外的字符集的话,同时复制"intl"子目录(里面包含"fbintl.dll"文件)到"embedded"目录下)。

3、将"embedded"目录下的"fbembed.dll"文件改名为"*fbclient.dll*"。
最终的目录结构如下:

Python 的安装目录\
  Lib\
    site-packages\
      kinterbasdb\
        embedded\
          fbclient.dll
            firebird.msg
            ib_util.dll
            intl\            //如果需要的话
              fbintl.dll


4、完成,运行KInterbasDB-Base 的Python 程序就可以连接目标数据库了。

注[1]:
KInterbasDB 为了向后兼容,默认情况下是使用"mx.DateTime"模块,但"mx.DateTime"被明确地表示是不必的!在Python
标准库里的"datetime"模块会更容易使用,完全可以代替"mx.DateTime"
!如果用"datetime"代替默认的"mx.DateTime",只需要简单地修改代码:
将
    "import kinterbasdb"
替换为
    "import kinterbasdb; kinterbasdb.init(type_conv=200)"

有一点值得提下,如果你用的Python 版本是低于2.4的话,你还是需要"mx.DateTime"模块的。

在07-3-5,gashero <harry.python在gmail.com> 写道:
>
> FireBird的下载,分为pdb和没有pdb的版本,有什么不同?另外,使用嵌入版本可以直接使用文件名做连接么?还有使用哪个Python
> Wrapper?
>
> --
> 从前有一只很冷的毛毛虫,他想获得一点温暖。而获得温暖的机会只有从树上掉下来,落进别人的领口。
> 片刻的温暖,之后便失去生命。而很多同类却连这片刻的温暖都没有得到就..
> 我会得到温暖么?小心翼翼的尝试,却还是会受到伤害。
> 我愿为那一刻的温暖去拼,可是谁愿意接受?
>
> 欢迎访问偶的博客:
> http://blog.csdn.net/gashero
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese




-- 
茫茫人海,你是我的最爱
-------------- 下一部分 --------------
一个HTML附件被移除...
URL: http://python.cn/pipermail/python-chinese/attachments/20070306/7e60b2a4/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月06日 星期二 10:16

Zoom.Quiet zoom.quiet在gmail.com
星期二 三月 6 10:16:05 HKT 2007

PyDbLite
http://quentel.pierre.free.fr/PyDbLite/index.html
Karrigell 再次选定的内置DB支持系统

On 3/6/07, 大熊 <bearsprite在gmail.com> wrote:
> kinterbasdb
>
> 1、将下载的KInterbasDB 驱动解压,运行其.exe安装程序,默认会安装到Python
> 的"lib\site-packages\kinterbasdb"目录下。
>
> 2、在上面提到的"kinterbasdb"目录下创建一个目录"embedded",然后解压下载来的Embedded FireBird,复制"
> fbembed.dll"、"firebird.msg"、"ib_util.dll"3个文件到"embedded"目录下——如果需要用到ASCII
> 外的字符集的话,同时复制"intl"子目录(里面包含"fbintl.dll"文件)到"embedded"目录下)。
>
> 3、 将"embedded"目录下的"fbembed.dll"文件改名为"fbclient.dll"。
> 最终的目录结构如下:
>
>  Python 的安装目录\
>    Lib\
>     site-packages\
>       kinterbasdb\
>         embedded\
>           fbclient.dll
>             firebird.msg
>             ib_util.dll
>             intl\            //如果需要的话
>               fbintl.dll
> 4、完成,运行KInterbasDB-Base 的Python 程序就可以连接目标数据库了。
>
>  注[1] :
> KInterbasDB 为了向后兼容,默认情况下是使用"mx.DateTime"模块,但"mx.DateTime"被明确地表示是不必的!在Python
> 标准库里的"datetime"模块会更容易使用,完全可以代替"mx.DateTime"!如果用"datetime"代替默认的"mx.DateTime",只需要简单地修改代码:
>>     " import kinterbasdb "
> 替换为
>      "import kinterbasdb; kinterbasdb.init(type_conv=200) "
>
>  有一点值得提下,如果你用的Python 版本是低于2.4的话,你还是需要"mx.DateTime"模块的 。
>
> 在07-3-5,gashero <harry.python在gmail.com > 写道:
> >
> FireBird的下载,分为pdb和没有pdb的版本,有什么不同?另外,使用嵌入版本可以直接使用文件名做连接么?还有使用哪个Python
> Wrapper?
> >
> > --
> > 从前有一只很冷的毛毛虫,他想获得一点温暖。而获得温暖的机会只有从树上掉下来,落进别人的领口。
> > 片刻的温暖,之后便失去生命。而很多同类却连这片刻的温暖都没有得到就..
> > 我会得到温暖么?小心翼翼的尝试,却还是会受到伤害。
> > 我愿为那一刻的温暖去拼,可是谁愿意接受?
> >
> > 欢迎访问偶的博客:
> > http://blog.csdn.net/gashero
> > _______________________________________________
> > python-chinese
> > Post: send python-chinese在lists.python.cn
> > Subscribe: send subscribe to
> python-chinese-request在lists.python.cn
> > Unsubscribe: send unsubscribe to
> python-chinese-request在lists.python.cn
> > Detail Info:
> http://python.cn/mailman/listinfo/python-chinese
>
>
>
> --
> 茫茫人海,你是我的最爱
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to
> python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to
> python-chinese-request在lists.python.cn
> Detail Info:
> http://python.cn/mailman/listinfo/python-chinese
>


-- 
'''Time is unimportant, only life important!
http://zoomquiet.org
blog在http://blog.zoomquiet.org/pyblosxom/
wiki在http://wiki.woodpecker.org.cn/moin/ZoomQuiet
scrap在http://floss.zoomquiet.org
douban在http://www.douban.com/people/zoomq/
____________________________________
Pls. use OpenOffice.org to replace M$ Office.
     http://zh.openoffice.org
Pls. use 7-zip to replace WinRAR/WinZip.
     http://7-zip.org/zh-cn/
You can get the truely Freedom 4 software.
'''

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月06日 星期二 12:03

Leo Jay python.leojay在gmail.com
星期二 三月 6 12:03:33 HKT 2007

On 3/5/07, gashero <harry.python在gmail.com> wrote:
> SQLite的多线程支持让我彻底失望了。所以寻求另外一种小巧的嵌入式数据库。当然我指可以嵌入程序使用,而不是嵌入式系统。听说MySQL好像也支持嵌入式的运行方式,只是不知道有没有Python
> Wrapper。
> 多谢。
>

好像sqlite支持多线程的。
http://www.sqlite.org/cvstrac/wiki?p=MultiThreading


-- 
Best Regards,
Leo Jay

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]
BB

BB

2007年03月07日 星期三 15:20

Steve Chu stvchu在gmail.com
星期三 三月 7 15:20:11 HKT 2007

sqlite»¹ºÃ°É£¬lzÓÐÌØÊâÐèÇóÂð£¿

On 3/6/07, Leo Jay <python.leojay在gmail.com> wrote:
>
> On 3/5/07, gashero <harry.python在gmail.com> wrote:
> >
> SQLiteµÄ¶àÏß³ÌÖ§³ÖÈÃÎÒ³¹µ×ʧÍûÁË¡£ËùÒÔÑ°ÇóÁíÍâÒ»ÖÖСÇɵÄǶÈëʽÊý¾Ý¿â¡£µ±È»ÎÒÖ¸¿ÉÒÔǶÈë³ÌÐòʹÓ㬶ø²»ÊÇǶÈëʽϵͳ¡£Ìý˵MySQLºÃÏñÒ²Ö§³ÖǶÈëʽµÄÔËÐз½Ê½£¬Ö»ÊDz»ÖªµÀÓÐûÓÐPython
> > Wrapper¡£
> > ¶àл¡£
> >
>
> ºÃÏñsqliteÖ§³Ö¶àÏ̵߳ġ£
> http://www.sqlite.org/cvstrac/wiki?p=MultiThreading
>
>
> --
> Best Regards,
> Leo Jay
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese




-- 
Steve Chu
http://stvchu.org
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070307/9cd64541/attachment-0001.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月07日 星期三 15:38

lu_zi_2000 lu_zi_2000在163.com
星期三 三月 7 15:38:42 HKT 2007

ÊÔ¹ýpostgresqlû




lu_zi_2000
2007-03-07



·¢¼þÈË£º Steve Chu
·¢ËÍʱ¼ä£º 2007-03-07 15:20:21
ÊÕ¼þÈË£º python-chinese在lists.python.cn
³­ËÍ£º 
Ö÷Ì⣺ Re: [python-chinese]¿É¹©PythonʹÓõÄǶÈëʽÊý¾Ý¿â

sqlite»¹ºÃ°É£¬lzÓÐÌØÊâÐèÇóÂð£¿


On 3/6/07, Leo Jay <python.leojay在gmail.com> wrote:
On 3/5/07, gashero <harry.python在gmail.com> wrote:
> SQLiteµÄ¶àÏß³ÌÖ§³ÖÈÃÎÒ³¹µ×ʧÍûÁË¡£ËùÒÔÑ°ÇóÁíÍâÒ»ÖÖСÇɵÄǶÈëʽÊý¾Ý¿â¡£µ±È»ÎÒÖ¸¿ÉÒÔǶÈë³ÌÐòʹÓ㬶ø²»ÊÇǶÈëʽϵͳ¡£Ìý˵MySQLºÃÏñÒ²Ö§³ÖǶÈëʽµÄÔËÐз½Ê½£¬Ö»ÊDz»ÖªµÀÓÐûÓÐPython
> Wrapper¡£ 
> ¶àл¡£
>

ºÃÏñsqliteÖ§³Ö¶àÏ̵߳ġ£
http://www.sqlite.org/cvstrac/wiki?p=MultiThreading


--
Best Regards,
Leo Jay
_______________________________________________ 
python-chinese
Post: send python-chinese在lists.python.cn
Subscribe: send subscribe to python-chinese-request在lists.python.cn 
Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
Detail Info: http://python.cn/mailman/listinfo/python-chinese 



-- 
Steve Chu
http://stvchu.org 
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070307/31888b4a/attachment-0001.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月07日 星期三 17:09

gashero harry.python在gmail.com
星期三 三月 7 17:09:36 HKT 2007

谢谢各位的回答,决定有空试用一下FireBird。现阶段先用Berkeley DB来拼。
SQLite的多线程支持是有些蹩脚的,首先各个线程只能用自己创建的连接。另外,运行的时候,SQLite还自做主张的创建事务,自己不提交就会锁定数据库。即使提交,在更新操作之后和提交之前的一小段时间里,也有可能被其他线程调用更新操作,然后还是锁定数据库。
甚至,我自己都写过SQLite的更新互斥支持,对所有的更新操作都用互斥锁来控制。即使这样也还是会锁定。后来听说SQLite的连接选项有一个isolation_level,设置为None可以不用自动产生事务,也试过,不过还是有锁定。
所以,在经历了近一个半月的折磨之后还是决定放弃了。当然,如果哪位成功的解决了SQLite的数据库锁定问题,希望告知我,谢谢。

-- 
从前有一只很冷的毛毛虫,他想获得一点温暖。而获得温暖的机会只有从树上掉下来,落进别人的领口。
片刻的温暖,之后便失去生命。而很多同类却连这片刻的温暖都没有得到就..
我会得到温暖么?小心翼翼的尝试,却还是会受到伤害。
我愿为那一刻的温暖去拼,可是谁愿意接受?

欢迎访问偶的博客:
http://blog.csdn.net/gashero

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月07日 星期三 21:16

3751 lwm3751在gmail.com
星期三 三月 7 21:16:50 HKT 2007

我看你也没好好看sqlite跟pysqlite
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20070307/8ccfe8dc/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月08日 星期四 08:35

gashero harry.python在gmail.com
星期四 三月 8 08:35:03 HKT 2007

我已经把pysqlite的usage-doc翻译完一半了,也只是知道了可以用isolation_level这个选项。其他的真的没看到有什么比较好的解决办法。楼上的如果有资料希望共享一下,谢谢。


-- 
从前有一只很冷的毛毛虫,他想获得一点温暖。而获得温暖的机会只有从树上掉下来,落进别人的领口。
片刻的温暖,之后便失去生命。而很多同类却连这片刻的温暖都没有得到就..
我会得到温暖么?小心翼翼的尝试,却还是会受到伤害。
我愿为那一刻的温暖去拼,可是谁愿意接受?

欢迎访问偶的博客:
http://blog.csdn.net/gashero

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月08日 星期四 12:14

vcc vcc在163.com
星期四 三月 8 12:14:42 HKT 2007

在印象中大部分开源的数据库在更新时是会锁住整个表或者数据库的,只有postgresql是锁定记录,所以在有大量更新的情况下,就算以快速著称的Mysql也是差强人意。可以考虑把大量更新集中起来做,一个写者和多个读者的竞争应该小于多个写者多个读者。

----- Original Message ----- 
From: "gashero" <harry.python at gmail.com>
To: <python-chinese at lists.python.cn>
Sent: Wednesday, March 07, 2007 5:09 PM
Subject: Re: [python-chinese]可供Python使用的嵌入式数据库


> 谢谢各位的回答,决定有空试用一下FireBird。现阶段先用Berkeley DB来拼。
> SQLite的多线程支持是有些蹩脚的,首先各个线程只能用自己创建的连接。另外,运行的时候,SQLite还自做主张的创建事务,自己不提交就会锁定数据库。即使提交,在更新操作之后和提交之前的一小段时间里,也有可能被其他线程调用更新操作,然后还是锁定数据库。
> 甚至,我自己都写过SQLite的更新互斥支持,对所有的更新操作都用互斥锁来控制。即使这样也还是会锁定。后来听说SQLite的连接选项有一个isolation_level,设置为None可以不用自动产生事务,也试过,不过还是有锁定。
> 所以,在经历了近一个半月的折磨之后还是决定放弃了。当然,如果哪位成功的解决了SQLite的数据库锁定问题,希望告知我,谢谢。
> 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月08日 星期四 12:47

Bruce Wang number5在gmail.com
星期四 三月 8 12:47:52 HKT 2007

On 3/8/07, vcc <vcc在163.com> wrote:
>
>
> 在印象中大部分开源的数据库在更新时是会锁住整个表或者数据库的,只有postgresql是锁定记录,所以在有大量更新的情况下,就算以快速著称的Mysql也是差强人意。可以考虑把大量更新集中起来做,一个写者和多个读者的竞争应该小于多个写者多个读者。
>
>
MySQL中的MyISAM表引擎是表级锁的,InnoDB是行级锁的,所以需要高并发写入的时候会采用InnoDB引擎。

gashero的问题其实可以用另外一种思路来解决,永远只建立一个SQLite数据库链接,所有提交修改的数据都进入一个异步的队列,由这个队列负责提交。这个队列的作用就是并行转串行。

另外也许可以参考一下Trac的做法,Trac默认的数据库是SQLite, 作为网站来说并发写是很普遍的,但是好像没有听说Trac过有什么这方面的问题
http://trac.edgewall.org/browser/trunk/trac/db

-- 
simple is good
http://brucewang.net
skype: number5
-------------- 下一部分 --------------
一个HTML附件被移除...
URL: http://python.cn/pipermail/python-chinese/attachments/20070308/7e4cc1a7/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号