Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1525042
  • 博文数量: 164
  • 博客积分: 2993
  • 博客等级: 少校
  • 技术积分: 1718
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-24 11:42
文章分类

全部博文(164)

文章存档

2014年(1)

2013年(36)

2012年(90)

2011年(37)

分类: Python/Ruby

2011-10-14 10:08:26

python sqlite3插入测试代码,默认情况下需要提交事务的,如果要设置con.isolation_level = None则每次自动提交事务:
当插入1000条数据时,自己提交事务用了,0.11s;程序自动提交事务用了1分半钟。
 
  1. #!/usr/bin/python
  2. #-*- coding: utf-8 -*-
  3. import sqlite3, datetime
  4. def insertData(n):
  5.     for i in range(n):
  6.         cur.execute('INSERT INTO foo (o_id, fruit, veges) VALUES(NULL, "apple", "broccoli")')
  7.     con.commit()
  8.     
  9. def deleteData():
  10.     cur.execute('delete from foo')
  11.     print 'delete over!'
  12.     con.commit()
  13.     
  14. def createTable():
  15.     cur.execute('CREATE TABLE foo (o_id INTEGER PRIMARY KEY, fruit VARCHAR(20), veges VARCHAR(30))')

  16. con = sqlite3.connect("my.db")
  17. #这个就是事务隔离级别,默认是需要自己commit才能修改数据库,置为None则自动每次修改都提交
  18. #con.isolation_level = None

  19. cur = con.cursor()
  20. insert_begin = datetime.datetime.now()
  21. #创建表格
  22. #createTable()
  23. #插入数据
  24. insertData(1000000)
  25. #deleteData()
  26. insert_end = datetime.datetime.now()

  27. print "insert data spend time :%s"%(insert_end-insert_begin)
  28. print 'last id: %s'%cur.lastrowid
阅读(4728) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~