首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

生成稳固的递增id

2012-10-31 
生成稳定的递增id? ? ? 最近有个项目数据库设计中需要用到分表, 假设记录文章的表,主键用一个id来标识文章

生成稳定的递增id


? ? ? 最近有个项目数据库设计中需要用到分表, 假设记录文章的表,主键用一个id来标识文章的id。由于各个表中的id不能重复,所以需要用一个外部的id生产程序。当然我们可以在数据库中单独新建一个表,利用表的自增属性来生成这个id,但是这样子不够灵活。所以另外用python写了个生成id的程序。

? ? ? 其中需要注意两点,

? ? ? 1.要保证线程安全,所以变量递增的时候,必须添加锁。

? ? ? 2.要保证该生成id的进程在被断电或意外强制结束(kill -9)后,下次重新启动的时候,再能从进程崩溃前的id继续递增,而不至于产生以前产生过的id,就是说要保证内存中的数据实时的同步到硬盘。第二点,python提供的anydbm模块或gdbm模块,其中打开文件的时候,有个s模式,即实时同步模式,能保证内存中的数据实时的同步到硬盘中。

?即使进程被被kill -9,数据也不会丢失。

热点排行