Python实现的内存表,欢迎拍砖

zhkl125 2015-10-15 01:23:12
Python实现的内存表,提供类似的数据库表操作,提高相关场景的开发效率
示例代码如下:

from MyTable import MyTable

# 创建表
tt=MyTable()
tt.createtable("id,name,addr,sex")

# 插入记录
tt.insert("id,name,addr,sex","01|zhou|xxxx|man")
tt.insert("id,name,addr","22|11|22")
tt.insert("addr,name","abc|ddd")

# 排序
tt.Sort()

# 查找
result = tt.selectwhere("id","01")

# 更新
tt.updatewhere("addr,name","xxxxxxx|zhou","id,sex","01|man")

# 打印
tt.Print()

已实现如下API:
1、createtable
2、insert
3、selectwhere
4、updatewhere
5、deletewhere
6、Sort
7、print

github地址

本帖的目的:
1、先不说代码,讨论下该功能是否有应用场景,以及API的设计是否合理
2、代码可用于学习
...全文
183 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangjj15 2015-10-22
  • 打赏
  • 举报
回复
功能肯定没问题,但是还是看效率
zhkl125 2015-10-22
  • 打赏
  • 举报
回复
引用 3 楼 panghuhu250 的回复:
仅从应用场景考虑,sqlite3的:memory:模式更实用一些:python自带而且功能完备。

import sqlite3
con = sqlite3.connect(":memory:")
然后con就可以像寻常数据库连接一样用。
其实这个主要应用场景是: 系统使用的配置或者一些常用基础数据(变化少),存放在ORACLE数据库(或者其他数据库)中,程序要使用这些数据,需要先读取出来存放到内存结构,本例就是实现这个结构的。 程序运营一段时间后,可能有少量数据发生变化了,需要一段时间频率更新到数据库中,通过这个内存表,组织SQL语句更新数据库
zhkl125 2015-10-22
  • 打赏
  • 举报
回复
引用 4 楼 wangjj15 的回复:
功能肯定没问题,但是还是看效率
效率一般就行了
zhkl125 2015-10-22
  • 打赏
  • 举报
回复
引用 3 楼 panghuhu250 的回复:
仅从应用场景考虑,sqlite3的:memory:模式更实用一些:python自带而且功能完备。

import sqlite3
con = sqlite3.connect(":memory:")
然后con就可以像寻常数据库连接一样用。
学习了
panghuhu250 2015-10-22
  • 打赏
  • 举报
回复
引用 7 楼 zhkl125 的回复:
[quote=引用 3 楼 panghuhu250 的回复:] 仅从应用场景考虑,sqlite3的:memory:模式更实用一些:python自带而且功能完备。

import sqlite3
con = sqlite3.connect(":memory:")
然后con就可以像寻常数据库连接一样用。
其实这个主要应用场景是: 系统使用的配置或者一些常用基础数据(变化少),存放在ORACLE数据库(或者其他数据库)中,程序要使用这些数据,需要先读取出来存放到内存结构,本例就是实现这个结构的。 程序运营一段时间后,可能有少量数据发生变化了,需要一段时间频率更新到数据库中,通过这个内存表,组织SQL语句更新数据库[/quote] 假若我遇到这样的问题: 1。如果常用数据简单,查询简单(直接循环或list comprehension就够了)。这时可用list/dictionary保存这些数据。 2。如果查询复杂(需要索引,关联等等)。这时就直接回数据库做查询。 只有第二种情况下,主数据库又负荷太大时(对日常应用来讲,这应该是很少见的),才会考虑在中间再加一级缓存。 把少量变化的数据暂时放到内存数据库中有一些问题需要注意:1. 数据可能丢失。2. 需要想办法追踪那些是新数据,需要保存到主数据库中。增加了程序的复杂度。3. 如果有多个用户使用这些数据,其他用户不能及时得到这些新数据。
panghuhu250 2015-10-21
  • 打赏
  • 举报
回复
仅从应用场景考虑,sqlite3的:memory:模式更实用一些:python自带而且功能完备。

import sqlite3
con = sqlite3.connect(":memory:")
然后con就可以像寻常数据库连接一样用。
zhkl125 2015-10-15
  • 打赏
  • 举报
回复
练习下而已 系统有哪个实现?
李察德-泰森 2015-10-15
  • 打赏
  • 举报
回复
我不认为你这个速度能比系统自己实现的更快

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧