Guest User

Untitled

a guest
Dec 1st, 2018
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.99 KB | None | 0 0
  1. import time
  2. import sqlite3
  3. import sqlalchemy
  4. from sqlalchemy.ext.declarative import declarative_base
  5. from sqlalchemy import Column, Integer, String, create_engine
  6. from sqlalchemy.orm import scoped_session, sessionmaker
  7.  
  8. Base = declarative_base()
  9. DBSession = scoped_session(sessionmaker())
  10.  
  11. class Customer(Base):
  12. __tablename__ = "customer"
  13. id = Column(Integer, primary_key=True)
  14. name = Column(String(255))
  15.  
  16. def init_sqlalchemy(dbname = 'sqlite:///sqlalchemy.db'):
  17. global engine
  18. mysqldb=sqlalchemy.engine.url.URL('mysql', username='xxx', password='xxx', host='0.0.0.0.0', database='Customer')
  19. engine = create_engine(mysqldb, echo=False)
  20. DBSession.remove()
  21. DBSession.configure(bind=engine, autoflush=False, expire_on_commit=False)
  22. Base.metadata.drop_all(engine)
  23. Base.metadata.create_all(engine)
  24.  
  25. def test_sqlalchemy_orm(n=100000):
  26. init_sqlalchemy()
  27. t0 = time.time()
  28. for i in range(n):
  29. customer = Customer()
  30. customer.name = 'NAME ' + str(i)
  31. DBSession.add(customer)
  32. if i % 1000 == 0:
  33. DBSession.flush()
  34. DBSession.commit()
  35. print "SqlAlchemy ORM: Total time for " + str(n) + " records " + str(time.time() - t0) + " secs"
  36.  
  37. def test_sqlalchemy_orm_pk_given(n=100000):
  38. init_sqlalchemy()
  39. t0 = time.time()
  40. for i in range(n):
  41. customer = Customer(id=i+1, name="NAME " + str(i))
  42. DBSession.add(customer)
  43. if i % 1000 == 0:
  44. DBSession.flush()
  45. DBSession.commit()
  46. print "SqlAlchemy ORM pk given: Total time for " + str(n) + " records " + str(time.time() - t0) + " secs"
  47.  
  48. def test_sqlalchemy_core(n=100000):
  49. init_sqlalchemy()
  50. t0 = time.time()
  51. engine.execute(
  52. Customer.__table__.insert(),
  53. [{"name":'NAME ' + str(i)} for i in range(n)]
  54. )
  55. print "SqlAlchemy Core: Total time for " + str(n) + " records " + str(time.time() - t0) + " secs"
  56.  
  57.  
  58.  
  59. if __name__ == '__main__':
  60. test_sqlalchemy_orm(500)
  61. test_sqlalchemy_orm_pk_given(500)
  62. test_sqlalchemy_core(500)
Add Comment
Please, Sign In to add comment