Skip to content

Instantly share code, notes, and snippets.

@pkufranky
Created April 14, 2010 05:44
Show Gist options
  • Save pkufranky/365482 to your computer and use it in GitHub Desktop.
Save pkufranky/365482 to your computer and use it in GitHub Desktop.
<?php
$a = 1;
<?php
$b = 2
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.schema import Column
from sqlalchemy.types import Integer, String
Base = declarative_base()
class Foo(Base):
__tablename__ = 'foo'
__table_args__ = ({'mysql_engine': 'InnoDB'})
__mapper_args__ = {'batch': True}
id = Column(Integer, primary_key=True)
name = Column(String(128))
def __repr__(self):
s = u"<Foo('%s', '%s')>" % (self.id, self.name)
return s.encode('utf8')
foos = Foo.__table__
meta = Base.metadata
db_url = 'mysql://root:@localhost/spider_item?charset=utf8&use_unicode=0'
engine = create_engine(db_url, convert_unicode=True, echo=False)
Session = sessionmaker(bind=engine, autoflush=False, autocommit=False)
session = Session()
foos.drop(bind=engine, checkfirst=True)
foos.create(bind=engine)
how = sys.argv[1]
if how == 'session':
for i in range(1,10000):
foo = Foo(name=u'中国')
session.add(foo)
session.commit()
elif how == 'session_all':
objs = []
for i in range(1,10000):
foo = Foo(name=u'中国')
objs.append(foo)
session.add_all(objs)
session.commit()
elif how == 'raw':
conn = engine.connect()
objs = []
for i in range(1, 10000):
foo = {'name': u'中国'}
objs.append(foo)
conn.execute(foos.insert(), objs)
conn.close()
else:
raise ValueError(how)
print '%s: %s' % (session.query(Foo).count(), session.query(Foo).first())
session.close()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment